webparking / nova-belongs-to-dependency
扩展 Laravel Nova BelongsTo 字段,可以依赖于其他字段
2.0.1
2023-02-15 08:37 UTC
Requires
- php: ^7.3|^8
- laravel/nova: ^4.0
README
此包是 Laravel Nova 现有 BelongsTo 字段和 Vue 组件的扩展。
最初由 manmohanjit 创建,原始包已被放弃。
要求
- PHP 7.3+
- Nova 4
如果您需要 Nova 3 的支持,请使用 1.x 版本
安装
您可以通过 composer 在使用 Nova 的 Laravel 应用上安装此包
composer require webparking/nova-belongs-to-dependency
用法
以下将列出具有与第一个 BelongsTo 字段设置的值相等的 type_id
的类别。
use Webparking\BelongsToDependency\BelongsToDependency; ... return [ ... BelongsTo::make('Type'), BelongsToDependency::make('User') ->dependsOn('type', 'type_id'), ... ];
请参考下面的 示例 了解其他用法。
示例
数据库结构
- 类型 (id, name)
- 帖子 (id, type_id, category_id, title, body)
- 类别 (id, type_id, title)
我们应该只能将属于同一类型的类别分配给帖子。
这就是您如何在 Nova 类别资源上实现它的方法
use Webparking\BelongsToDependency\BelongsToDependency; ... return [ ... BelongsTo::make('Type'), BelongsToDependency::make('User') ->dependsOn('type', 'type_id'), ... ];
如果您还使用了文本/枚举 type
字段,这也会生效。
use Webparking\BelongsToDependency\BelongsToDependency; ... return [ ... Select::make('Type')->options([ 'post' => 'Post', 'page' => 'Page', ])>displayUsingLabels(), BelongsToDependency::make('User') ->dependsOn('type', 'type'), ... ];
更新日志
有关最近更改的更多信息,请参阅 更新日志。
致谢
此工具扩展了 Laravel Nova BelongsTo 字段,并受到 Nova Dependency Container 的启发。
许可证
MIT 许可证 (MIT)。请参阅许可证文件以获取更多信息。