khoaduyetquocvuon / nova-mediable-manager
一个 Laravel Nova 可媒体管理的工具和字段。
dev-master
2023-06-24 05:22 UTC
Requires
- php: >=7.1.0
- intervention/image: ^2.5
- laravel/framework: ~5.8.0|^6.0|^7.0|^8.0
This package is auto-updated.
Last update: 2024-09-24 08:01:02 UTC
README
此软件包仍在积极开发中,请勿在生产环境中使用
Laravel Nova 可媒体管理器和字段,用于管理多态多对多关系。
目录
安装
composer require naska-it/nova-mediable-manager
php artisan vendor:publish --provider="Khoahuynhvietswiss\NovaMediableManager\ToolServiceProvider"
php artisan migrate
php artisan storage:link
配置
在config/nova-mediable-manager.php中检查一些额外配置:启用Manager并添加到app/Providers/NovaServiceProvider.php
/** * Get the tools that should be listed in the Nova sidebar. * * @return array */ public function tools() { return [ new \Khoahuynhvietswiss\NovaMediableManager\NovaMediableManager ]; }
使用字段 - 首先为您的模型添加HasMedia特质
use Khoahuynhvietswiss\NovaMediableManager\HasMedia; class Page extends Model { use HasMedia;
使用字段 - Nova 资源
use Khoahuynhvietswiss\NovaMediableManager\Mediable; class Page extends Resource { /** * Get the fields displayed by the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function fields(Request $request) { return [ ID::make(__('ID'), 'id')->sortable(), Text::make('Name'), Trix::make('Body'), Mediable::make('Image') ->hideFromIndex() ->isSingle(), Mediable::make('Featured') ->isSingle(), Mediable::make('Gallery'), ]; }
灵活
如果您在灵活布局中使用Mediable字段
use Khoahuynhvietswiss\NovaMediableManager\Mediable; public function fields() { return [ Text::make('Headline'), Text::make('Slogan'), Mediable::make('Block') ->isSingle() ->isFlexible(), ]; }
为您的布局添加HasFlexibleMediable特质
use Khoahuynhvietswiss\NovaMediableManager\HasFlexibleMediable; class BlockLayout extends Layout { use HasFlexibleMediable;
致谢
我从哪里得到一些代码:)
替代方案
我之前使用的