novius/laravel-nova-publishable

用于发布字段的开源Laravel Nova包

3.0.0 2024-07-10 14:01 UTC

This package is auto-updated.

Last update: 2024-09-10 14:16:49 UTC


README

Packagist Release License: AGPL v3

简介

此包允许您在 Laravel Nova 中管理使用 Laravel Publishable 的 Laravel 模型。

要求

  • Laravel Nova >= 4.0
  • Laravel >= 10.0
  • PHP >= 8.2

注意:以下说明适用于 Laravel >= 10.0 和 PHP >= 8.2。如果您使用的是旧版本,请参阅 旧版本的文档

安装

您可以通过 composer 安装此包

composer require novius/laravel-nova-publishable

在您的 Nova 资源上添加 Publishable 特性

use Laravel\Nova\Resource;
use Novius\LaravelNovaPublishable\Nova\Traits\Publishable;

class Post extends Resource
{
    use Publishable;

然后您可以在您的 Nova 资源中插入 Publishable 字段。您还可以添加发布状态过滤器。

class Post extends Resource
{
    public function fields(NovaRequest $request): array
    {
        return [
            PublicationBadge::make(), // Only display on not forms
            PublicationStatusField::make()->onlyOnForms(),
            PublishedFirstAt::make()->hideFromIndex(),
            PublishedAt::make()->onlyOnForms(),
            ExpiredAt::make()->onlyOnForms(),
        ];
    }

    public function filters(NovaRequest $request): array
    {
        return [
            new PublicationStatus(),
        ];
    }

您可以使用 UpdatePublicationStatus 动作批量更新模型的状态。

    public function actions(Request $request): array
    {
        return [
            UpdatePublicationStatus::make(),
        ];
    }

语言文件

如果您想自定义语言文件,您可以使用以下命令发布它们

php artisan vendor:publish --provider="Novius\LaravelNovaPublishable\LaravelNovaPublishableServiceProvider" --tag="lang"

代码检查

使用 Laravel Pint 检查您的代码

composer run-script lint

许可证

此包受 GNU Affero General Public License v3 或(根据您的选择)任何后续版本的许可。