在Laravel Nova中创建资源时向关系添加约束

时间:2020-01-04 16:11:12

标签: laravel relationship laravel-query-builder laravel-nova

我有问题模型+ nova资源),标签模型+ nova资源(使用Spatie / Tags)和模块模型+ nova资源

问题属于模块(1对多)。

模块 MorphToMany 标签(MorphToMany)

问题(MorphToMany)标签(MorphToMany)。

我希望允许Question具有任意数量的标签,但只能使其与关联模块相关联的标签(即$ question→module())。

在Nova中,我想在问题资源上有一个标签字段,这样用户可以添加许多标签,但只能添加受限选项列表中的标签(该标签基于$ question-> module-> tags( ))。我应该提到我有一个BelongsTo字段来附加一个模块。

我一直在苦苦思索如何完成这项工作。我的问题模型上有一个名为moduleTags()的关系,该关系获取与Module关联的标签。

App / Question.php (问题模型)

    public function moduleTags(){
        return $this->module->tags();
    }

Nova / Question.php (问题资源)

    public function fields(Request $request){

         return [

            ...

            BelongsTo::make('Module')->rules('required'),

            \Spatie\TagsField\Tags::make('Tags')->withLinkToTagResource(),

         ];
    }



0 个答案:

没有答案