是否可以在 Symfony 2 中创建自定义表单域属性?

2022-08-31 01:00:28

在 Symfony2 表单组件中,是否可以创建自定义属性?

我之所以问这个问题,是因为我正在研究一个边缘情况,在这个案例中,read_only是不够的。

场景如下:我需要根据一些外部逻辑解析的结果绑定数据。这一点至关重要,因为我可能有默认禁用的字段,但基于外部逻辑,这些字段可能会被激活。我无法使用客户端脚本来生成此结果,必须在form属性中禁用它。

如果我从read_only字段开始,它将被禁用,但我永远无法将数据绑定到它。因此,鉴于我前面提到的外部逻辑的结果,我将无法使用read_only。因此,这使我别无选择,只能使用不同的属性,这将使该字段被禁用。

是否可以创建自定义属性来生成此禁用效果?


答案 1

我不确定我是否正确理解了您的问题;是否要向表单输入标签添加任意属性?例如:

<input type="text" name="myInput" myAttr="myValue" />

如果这是您想要做的,那么这是可能的,如下所示:

$form = $this->createFormBuilder($someObj)
        ->add('myInput', 'text', array(
             'attr' => array('myAttr' => 'myValue')
        )
        ->getForm();

文档在这里:

http://symfony.com/doc/2.0/reference/forms/types/field.html


答案 2

很难确切地说出您要做什么,但听起来您希望基于某些事件动态生成表单,如下所述:

http://symfony.com/doc/2.0/cookbook/form/dynamic_form_generation.html


推荐