Octobercms:如何使中继器字段可 jsonable,因为我正在将此中继器字段创建到不同的插件中

Zak*_*ain 3 octobercms octobercms-backend octobercms-widgets

我如何使中继器字段可 jsonable,因为我正在将这个中继器字段创建到不同的插件中,并且我已经创建了自己的插件。例如:我想在rainlab.user插件模型中添加一个中继器字段,但我想通过我自己的插件来完成此操作,因此rainlab.user插件的更新不会影响我的工作。谢谢

Raj*_*ury 5

您应该阅读有关扩展插件的内容。

1)首先在您的自定义中注册事件plugin.php-示例

2) 将相关字段添加到迁移文件中 -示例- 确保字段类型设置为jsontext$table->json('field_name')->nullable();

假设您想Dogs向用户模型添加一个转发器字段;

public function boot()
{

    UserModel::extend(function($model)
    {
        $model->addJsonable([
            'dogs',
        ]);
    });

    UsersController::extendFormFields(function($form, $model, $context){

        if (!$model instanceof UserModel) {
            return;
        }

        $form->addTabFields([
            'dogs' => [
                'label'      => 'My Dogs',
                'type'       => 'repeater',
                'form'       => [
                    'fields' => [
                        'breed' => [
                            'label' => 'Breed',
                            'type' => 'dropdown',
                            'options' => [
                                'labrador' => "Labrador",
                                'cocker'   => "Cocker Spaniel"
                            ]
                        ],
                        'name' => [
                            'label' => 'Name',
                            'type' => 'text',
                        ]
                    ],
                ],
            ],
        ]);

    });

}
Run Code Online (Sandbox Code Playgroud)