aqjw/nova-belongs-to-dependency

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

v4.0.8 2022-07-01 18:52 UTC

This package is auto-updated.

Last update: 2024-09-21 00:41:03 UTC


README

Latest Version on Packagist Total Downloads

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

要求

  • PHP 8.0.2+
  • Nova 4+

目录

安装

可以通过以下命令安装此包

composer require aqjw/nova-belongs-to-dependency

用法

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

use Aqjw\BelongsToDependency\BelongsToDependency;
...
return [
    ...
    BelongsTo::make('Type'),
    
    BelongsToDependency::make('User')
        ->dependsOn('type', 'type_id')
    ...
];

方法

dependsOn

此方法可以接受一个或两个参数。如果您不传递第二个参数,它将从第一个参数生成,并带有_id后缀。

这可能依赖于BelognsToTextEnum和其他字段 🤷

BelongsToDependency::make('User')
    ->dependsOn('type', 'type_id'),
多重依赖

您也可以将数组作为第一个参数传递。为了使两个或多个字段形成依赖。

BelongsToDependency::make('User')
    ->dependsOn(['type', 'role']),

或者

BelongsToDependency::make('User')
    ->dependsOn([
        'type' => 'type_id',
        'role' => 'role_id',
    ]),

searchable

如果您有很多条目,请使用此方法。

BelongsTo::make('Country')
    ->searchable(),

BelongsToDependency::make('State')
    ->searchable()
    ->dependsOn('country'),

BelongsToDependency::make('City')
    ->searchable()
    ->dependsOn('state'),

buildQuery

如果您想在查询中添加自己的条件,请调用buildQuery方法。

BelongsToDependency::make('Product')
    ->dependsOn('category')
    ->buildQuery(function ($query, $values) {
        $query->where($values)
            ->where('status', 'active');
    }),

formatResource

使用此方法来更改资源格式。如果您想要分组项目,这可能很有用。

BelongsToDependency::make('Product')
    ->dependsOn('category')
    ->formatResource(function ($resource) {
        return [
            'display' => $resource->name,
            'value' => $resource->id,
            'group' => $resource->parent_category,
        ];
    })

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。