OctoberCMS在后端添加自定义字段

时间:2017-11-20 14:20:06

标签: php octobercms octobercms-backend

如何在fields.yaml中添加字段,但阻止将它们添加到任何表单中。我想仅使用方法' formRenderField'

添加这些字段

1 个答案:

答案 0 :(得分:1)

我想如果你想扩展它们,那么你可以直接写在" fields.yaml"文件并创建它的不同版本并使用它们根据条件呈现表单

    <?php namespace Acme\Blog\Controllers;

    class Categories extends \Backend\Classes\Controller
    {
        public $implement = ['Backend.Behaviors.FormController'];

        public $formConfig = 'form_config.yaml';
    }

这是正常的做法

但你可以在构造函数中添加条件来更改配置文件

    public __construct() {

        // if condition is true then use this config otherwise use regular one
        if(condition) {
            $this->formConfig = 'modified_form_config.yaml';
        }

    }

另一种方法是根据条件扩展表单,例如:

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

        if (!$model instanceof UserModel)
            return;

        $form->addFields([
            'store' => [
                'label'=> 'Store',
                'type'=>'relation',
                'nameFrom'=> 'name'
                ],
            ]);

    });

您可以在插件启动方法

中编写此代码

这里我们在调用 UserController 时添加字段,并且仅在尝试呈现 UserModel 模型时添加字段。

如果您需要一些自定义方案,请详细说明,以便我们以更好的方式为您提供帮助。