简体   繁体   English

OctoberCMS相关模型动态默认值

[英]OctoberCMS Related Model Dynamic Default Value

I have a backend controller implements Backend\\Behaviors\\RelationController , I just want to set default values for the related model depending on the parent model values. 我有一个后端控制器实现Backend\\Behaviors\\RelationController ,我只想根据父模型值设置相关模型的默认值。

I have tried the following: model.beforeCreate , formExtendFields but no luck. 我尝试了以下方法: model.beforeCreateformExtendFields但没有运气。

Thank you all. 谢谢你们。

After whole day of searching, I found the solution, it is documented no where on OctoberCMS website , I inspected the source file Backend\\Behaviors\\RelationController , after that I came with the below solution. 经过一整天的搜索,我找到了解决方案,在OctoberCMS网站上没有任何记录 ,我检查了源文件Backend\\Behaviors\\RelationController ,然后提供了以下解决方案。

You should implement relationExtendViewWidget on your controller, then you can access the model from: $widget->model , something like below: 您应该在控制器上实现relationExtendViewWidget ,然后可以从$widget->model访问$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;
    }
}

I believe this should be documented somewhere on OctoberCMS documentation 我认为这应该记录在OctoberCMS文档中的某个位置

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM