我有问题模型+ 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(),
];
}