van-ons/laraberg-nova

一个 Laravel Nova 字段。

v1.0.0-rc6 2022-01-13 14:11 UTC

This package is auto-updated.

Last update: 2024-09-21 14:33:48 UTC


README

为 Laraberg 提供的一个 nova 字段

安装

通过 composer 安装

composer require van-ons/laraberg-nova

发布 Laraberg 文件

php artisan vendor:publish --provider="VanOns\Laraberg\LarabergServiceProvider"

Laraberg 提供了一个 CSS 文件,该文件应出现在您想渲染内容的页面上

<link rel="stylesheet" href="{{asset('vendor/laraberg/css/laraberg.css')}}">

用法

只需在您的资源中注册该字段

LarabergNova::make(__('Content'), 'content')

RendersContent 特性添加到您的模型中。并且可以可选地定义 $contentColumn 属性,以指向包含您的 Laraberg 内容的列,默认为 content

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use VanOns\Laraberg\Traits\RendersContent;

class Post extends Model
{
    use HasFactory, RendersContent;
    
    protected $contentColumn = 'content';
       
    ...
}

在模板中对模型调用渲染方法。

{!! $model->render() !!}

选项

该字段有一些您可以配置的选项。

高度

您可以根据需要自定义编辑器的高度。

LarabergNova::make(__('Content'), 'content')->height(600)

附件

您可以启用上传附件。

LarabergNova::make(__('Content'), 'content')->withFiles('public')

您需要添加以下迁移才能使其工作。

Schema::create('laraberg_nova_pending_attachments', function (Blueprint $table) {
    $table->increments('id');
    $table->string('draft_id')->index();
    $table->string('attachment');
    $table->string('disk');
    $table->timestamps();
});

Schema::create('laraberg_nova_attachments', function (Blueprint $table) {
    $table->increments('id');
    $table->string('attachable_type');
    $table->unsignedInteger('attachable_id');
    $table->string('attachment');
    $table->string('disk');
    $table->string('url')->index();
    $table->timestamps();
    $table->index(['attachable_type', 'attachable_id']);
});