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

| 在Symfony2表单组件中,可以创建自定义属性吗? 我问的原因是因为我正在某种边缘情况下使用read_only不够用。 这是场景:我需要根据一些外部逻辑解析的结果来绑定数据。这很关键,因为我可能默认情况下禁用了某些字段,但是根据外部逻辑,这些字段可能会被激活。我无法使用客户端脚本生成此结果,必须在form属性中将其禁用。 如果我将字段开头为read_only,它将被禁用,但是我将永远无法将数据绑定到该字段。因此,鉴于上述外部逻辑的结果,我将无法使用read_only。因此,这使我别无选择,只能使用其他属性来禁用该字段。 是否可以创建自定义属性来产生此禁用效果?     
已邀请:
        我不确定我是否正确理解了您的问题;是否要向表单输入标签添加任意属性?例如:
<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     
        很难准确说明您要执行的操作,但听起来像您想要基于某个事件动态生成的表单,其描述如下: http://symfony.com/doc/2.0/cookbook/form/dynamic_form_generation.html     
        您的限制不是Symfony,您的限制是HTML和HTTP。不幸的是,一旦HTTP请求得到满足,一旦数据发送到浏览器,服务器就无法更改呈现的内容(嗯,几乎没有任何东西,总有天网)。唯一的选择是JavaScript(如果它们未运行Lynx,则可以做很多事情)。 我在Google网上论坛上看到了您的问题,并且基于两者的结合,我可以告诉您您只有两个选择。 您可以使该选项显示为对来自浏览器的第一个响应的响应。 您可以使用JavaScript,然后在服务器端处理所有故障。 你最好的选择?我认为用户会喜欢JavaScript选项。无论如何,最好在服务器端验证用户信息。显然,通过使用JavaScript进行验证可以使用户尽快知道,但是无论如何,您都需要检查他们在服务器上的输入。 顺便说一句,要禁用Symfony中的表单字段,请按以下分步说明进行操作。     

要回复问题请先登录注册