novius / laravel-nova-contexts
Laravel Nova 工具,用于管理资源的上下文。
2.0.0
2022-06-14 08:30 UTC
Requires
- php: >=8.0
- laravel/nova: ^4.0
Requires (Dev)
README
此包允许您管理资源上下文。
它提供
- 在后台导航时的默认上下文选择(在 nova 卡中)。
- 基于默认上下文的上下文过滤器。
- 资源上下文字段。
需求
- PHP >= 8.0
- Laravel Nova >= 4.0
注意:这些说明适用于 Laravel Nova >= 4.0。如果您使用的是早期版本,请参阅 早期版本文档。
安装
composer require novius/laravel-nova-contexts
配置
一些可覆盖的选项可供使用。
php artisan vendor:publish --provider="Novius\LaravelNovaContexts\LaravelNovaContextsServiceProvider" --tag="config"
上下文选择器
有一张卡片可以在上下文之间导航。您可以轻松将其添加到自定义资源索引中。
<?php namespace App\Models; use Laravel\Nova; use Novius\LaravelNovaContexts\LaravelNovaContexts; class Page extends Resource { // Some resources definitions... public function cards(Request $request) { return [ (new LaravelNovaContexts())->dynamicHeight(), ]; } }
模型配置
要使模型“可上下文”,只需使用 HasContext
特性。
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Novius\LaravelNovaContexts\Traits\HasContext; class Page extends Model { use HasContext; /** * @return string */ public function contextFieldName(): string { return 'locale'; } }
Nova 资源字段配置
您可以将上下文字段添加到 Nova 资源的字段中
public function fields(Request $request) { return [ // ... ContextField::make('locale'), // ... ]; }
Nova 资源过滤器配置
您可以将上下文过滤器添加到 Nova 资源的过滤器中
/** * Get the filters available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function filters(Request $request) { return [ new ContextFilter($this->model()), ]; }
Lint
使用 php-cs 运行
composer run-script lint
贡献
欢迎贡献!
在 Github 上提交问题,或创建一个 Pull Request。
许可证
此包受 GNU Affero 通用公共许可证 v3 或(根据您的要求)任何后续版本的约束。