optimistdigital/nova-drafts

该软件包已被废弃且不再维护。未建议替代软件包。

Laravel Nova 字段,允许您创建当前资源的草稿。

1.1.8 2022-11-18 12:19 UTC

README

Latest Version on Packagist Total Downloads

Laravel Nova 字段允许您创建资源的草稿。

特性

  • 创建草稿
  • 取消发布资源(禁用它们)
  • Artisan 命令用于创建迁移

屏幕截图

Detail View

Form View

Index View

安装

使用 Composer 在 Laravel Nova 项目中安装该软件包

composer require optimistdigital/nova-drafts

使用方法

准备模型和数据库

此字段需要一些数据库更改——具体来说,模型需要三个新列 可以使用以下 Artisan 命令创建迁移:

php artisan drafts:migration {table?}

如果没有提供表名,将提供所有可用表的选项。

如果您的表具有预存在的唯一约束:建议将 'published' 字段添加到唯一约束中。更多详细信息请参阅迁移文件。

定义字段

use OptimistDigital\NovaDrafts\DraftButton;
use OptimistDigital\NovaDrafts\PublishedField;
use OptimistDigital\NovaDrafts\UnpublishButton;

public function fields(Request $request)
{
    return [
        UnpublishButton::make('Unpublish'),
        DraftButton::make('Draft'),
        PublishedField::make('State', 'published'),
    ]
}

索引过滤(IndexQuery)

在您的 模型 中添加以下代码片段

public function childDraft()
{
    return $this->hasOne(YourModelName::class, 'draft_parent_id', 'id');
}

在您的 索引查询 中使用该函数,以过滤出具有草稿的已发布页面

public static function indexQuery(NovaRequest $request, $query)
{
    return $query->doesntHave('childDraft');
}

选项

您可以传递给字段的可能选项,使用选项名作为函数

选项 类型 默认值 描述
draftsEnabled 布尔值 true 草稿是否启用

本地化和文本自定义

可以使用以下发布命令发布翻译文件

php artisan vendor:publish --provider="OptimistDigital\NovaDrafts\FieldServiceProvider" --tag="translations"

您可以将翻译添加到 resources/lang/vendor/nova-drafts/,通过创建一个新的带有区域名称(例如 et.json)的翻译文件,并将 JSON 从现有的 en.json 中复制过来。

鸣谢

许可证

Nova Drafts 是开源软件,根据 MIT 许可证 发布