如何通过FormBuilder的字段传递twig参数

时间:2012-08-29 18:35:47

标签: php forms symfony twig

我已在documentation

中的表单中实现了帮助消息
{% extends 'form_div_layout.html.twig' %}

{% block field_widget %}
    {{ parent() }}
    {% if help is defined %}
        <span class="help">{{ help }}</span>
    {% endif %}
{% endblock %}

为了呈现帮助部分,示例说明应该在twig文件中定义'help',如下所示:

{{ form_widget(form.title, {'help': 'foobar'}) }}

但是,我想将“帮助”定义为表单构建器中字段的选项,如下所示:

class myClassType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('title',null,array('help'=>'foobar'));
    }
}

这产生没有结果(“选项”帮助“不存在”)。我也试过了

$builder
   ->add('title',null,array('attr'=>array(help'=>'foobar')));

它也不起作用。

任何想要获得此类工作的想法都会有效吗?

3 个答案:

答案 0 :(得分:4)

使用

$builder
->add('title',null,array('attr'=>array('help'=>'foobar'))); 

然后

{% if attr['help'] is defined %}
    <span class="help">{{ attr['help'] }}</span>
{% endif %}

答案 1 :(得分:2)

您可以使用最终实现finishView的{​​{1}} AbstractType方法。 e.g,

FormTypeInterface

答案 2 :(得分:0)

我的猜测是你不能这样做的原因是表单字段帮助文本主要是视图/模板问题。我意识到这完全没有回答你的问题。