如何在fields.yaml中添加字段,但阻止将它们添加到任何表单中。我想仅使用方法' formRenderField'
添加这些字段答案 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 模型时添加字段。
如果您需要一些自定义方案,请详细说明,以便我们以更好的方式为您提供帮助。