scops/nova-belongs-to-dependency

扩展 Laravel Nova BelongsTo 字段,可依赖其他字段

dev-master 2021-05-27 18:22 UTC

This package is auto-updated.

Last update: 2024-09-28 01:43:06 UTC


README

此包是 Laravel Nova 现有 BelongsTo 字段和 Vue 组件的扩展。

最初由 manmohanjit 创建,原始包已放弃。随后由 webparking/nova-belongs-to-dependency 接替,但我修复了一些大记录集的问题,并添加了对可搜索字段的兼容。

安装

您可以通过 composer 在使用 Nova 的 Laravel 应用中安装此包

composer require scops/nova-belongs-to-dependency

用法

以下将列出具有 type_id 等于第一个 BelongsTo 字段设置值的类别。

use Scops\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 Scops\BelongsToDependency\BelongsToDependency;
...
return [
    ...
    BelongsTo::make('Type'),
    
    BelongsToDependency::make('User')
        ->dependsOn('type', 'type_id'),
    ...
];

如果您还使用了文本/枚举 type 字段,它也会起作用。

use Scops\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)。请参阅许可证文件以获取更多信息。