我有一个后端控制器实现Backend\Behaviors\RelationController
,我只想根据父模型值设置相关模型的默认值。
我尝试过以下操作:model.beforeCreate
,formExtendFields
但没有运气。
谢谢大家。
答案 0 :(得分:1)
经过一整天的搜索,我找到了解决方案,在OctoberCMS website上没有记录,我检查了源文件Backend\Behaviors\RelationController
,之后我得到了以下解决方案。
您应该在控制器上实施relationExtendViewWidget
,然后您可以从$widget->model
访问该模型,如下所示:
class Members extends Controller
{
public $implement = [
'Backend\Behaviors\RelationController',
];
public function relationExtendViewWidget($widget, $field)
{
$member = Member::findOrFail($this->params[0]);
$widget->model->course_id = $member->course_id;
$widget->model->member_id = $member->id;
}
public function relationExtendManageWidget($widget, $field)
{
$member = Member::findOrFail($this->params[0]);
$widget->model->course_id = $member->course_id;
$widget->model->member_id = $member->id;
}
}
我认为应该在OctoberCMS documentation
的某处记录