carloscgo/nova-belongsto-depend

Laravel Nova 字段。

v1.1.0 2019-03-01 15:56 UTC

This package is not auto-updated.

Last update: 2024-09-21 18:10:52 UTC


README

Latest Version on Packagist Total Downloads

Sample

安装

您可以通过composer将此包安装到使用 Nova 的Laravel应用程序中

composer require carloscgo/nova-belongsto-depend

在您的Nova资源中使用此字段

public function fields(Request $request)
{
    return [
        ID::make()->sortable(),
        Text::make('Name')->rules('required', 'max:255'),

        NovaBelongsToDepend::make('Company')
            ->options(\App\Company::all()),
        NovaBelongsToDepend::make('Department')
            ->optionsResolve(function ($company) {
                // Reduce the amount of unnecessary data sent
                return $company->departments()->get(['id','name']);
            })
            ->dependsOn('Company'),
        NovaBelongsToDepend::make('Location')
            ->optionsResolve(function ($company) {
                // Reduce the amount of unnecessary data sent
                return $company->locations()->get(['id','name']);
            })
            ->dependsOn('Company'),

    ];
}

示例

演示项目

  • 仓库与文章多对多关联
  • 文章与供应商多对多关联
  • 供应商与文章多对多关联
  1. 选择一个 仓库,获取该仓库的所有文章
  2. 选择一个 文章,获取拥有此文章的所有供应商
public function fields(Request $request)
{
    return [
        ID::make()->sortable(),
        Text::make('Name')->rules('required', 'max:255'),

        NovaBelongsToDepend::make('Warehouse')
        ->options(\App\Warehouse::all())
        ->rules('required'),
        NovaBelongsToDepend::make('Article')
            ->optionsResolve(function ($warehouse) {
                return $warehouse->articles;
            })
            ->dependsOn('Warehouse')
            ->rules('required'),
        NovaBelongsToDepend::make('Supplier')
            ->optionsResolve(function ($article) {
                return \App\Supplier::whereHas('articles', function ($q) use ($article) {
                    $q->where('article_id', $article->id);
                })->get();
            })
            ->dependsOn('Article')
            ->rules('required'),


    ];
}

安全

如果您发现任何与安全相关的问题,请通过info@orlyapps.de发送电子邮件,而不是使用问题跟踪器。

致谢

许可证

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