sevendays-digital / filament-nested-resources
处理嵌套资源的助手
Requires
- php: ^8.1
- filament/filament: ^2.0
- illuminate/contracts: ^9.0|^10.0
- spatie/laravel-package-tools: ^1.13.5
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- pestphp/pest-plugin-livewire: ^1.0
- pestphp/pest-plugin-parallel: ^0.3
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-09 04:45:17 UTC
README
此包为 Filament 添加了对嵌套资源的支持。
它提供基类和列以提供嵌套结构。
目前配置性不强,您需要遵循 Laravel 通常使用的命名约定。
演示
Screen.Recording.2023-04-07.at.13.14.05.mov
安装
您可以通过 composer 安装此包。
composer require sevendays-digital/filament-nested-resources
用法
目前您需要进行一些更改才能使其工作。但您首先需要创建一个 filament 资源(此时父资源应该已经存在。我们要更改的资源是子资源)。
一旦创建,您需要将 Filament/Resources/ChildModelResource.php
修改为 NestedResource
。
use SevendaysDigital\FilamentNestedResources\Columns\ChildResourceLink; use SevendaysDigital\FilamentNestedResources\NestedResource; class ChildModelResource extends NestedResource { public static function getParent(): string { return ParentModelResource::class; } }
然后,对于每个资源页面,您需要添加 traits
use SevendaysDigital\FilamentNestedResources\ResourcePages\NestedPage;
最后,在您的 ParentModelResource
中,您可以为链接添加列
public static function table(Table $table): Table { return $table ->columns([ ChildResourceLink::make(ChildModelResource::class), ]); }
访问父资源
当您需要在 livewire 上下文中使用父资源,例如表单时,您可以在表单方法中添加第二个参数
public static function form(Form $form, ?Event $parent = null): Form;
其中 Event
是应该作为父资源的模型。
侧边栏
默认情况下,当处于“上下文”中时,侧边栏将注册该资源的菜单项。
所以如果您在一个包含文档的项目内部,当您处于项目或更深的级别时,侧边栏将显示文档。
如果您不希望这样,您可以在子资源中将 shouldRegisterNavigationWhenInContext
设置为 false。
注意
您不能为多个父资源使用子资源,但是您可以有多个资源指向同一个模型。
只需确保为资源设置自定义 slug,以便构建唯一的路由。
https://filamentphp.com/docs/2.x/admin/resources/getting-started#customizing-the-url-slug
测试
没有。
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅 我们的安全策略。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。