我有一个问题:在细丝表单中,我有一个用复选框列表呈现的多对多关系。在保存数据库之前,我必须使用列表中的值执行一些“操作”。
可能没有办法处理该值?
我查看了 mutateFormDataBeforeSave 或 handleRecordCreation 方法,但 $data 变量包含除关系数据之外的所有表单数据。
如果有人还需要它,您可以使用
saveRelationshipsUsing()
字段中的 ChecboxList
方法,并相应地注入您所需的实用程序。注入 $state
将为您提供一组已检查的模型 ID。以下是我在项目中使用的片段。
CheckboxList::make('categories')
->relationship(
'categories',
titleAttribute: 'name',
)
->saveRelationshipsUsing(function (Model $record, $state){
//your code here
//eg: $record->categories()->sync($state) for manyToMany default behaviour
})
这里,
$model
给出了资源模型,state给出了所选类别的id,如[1,3,4]