首页 > 解决方案 > Laravel Nova 减少 Select 选项或注入子句进行查询

问题描述

我有一个组织模型和一个合同模型

这里是

class Contract extends Model {

    public function organisation() {
        return $this->belongsTo(Organisation::class, 'organisation_id', 'id')->where('is_self',1);
    }

}

如何让 Laravel Nova 只看到 BelongsTo 字段中 is_self=1 的组织。是否有注入子句查询的功能,这里选择哪些形式?

这就是我所说的 BelongsTo

BelongsTo::make('Organisation', 'organisation', Organisation::class)
    ->rules('required', 'exists:organisations,id'),

标签: laravel-nova

解决方案


你也不需要坚持这个BelongsTo领域。也许一个Select领域适合你的情况?

Select::make('is_self', 'organisation_id')
    ->options(function() {
        Organisation::whereIsSelf(1)->pluck('name', 'id')->toArray();
    })

此代码未经测试,但我在我的 Nova 应用程序中使用类似的选择没有问题。


推荐阅读