Symfony 3+:自定义表单元素模板

时间:2018-07-17 06:56:51

标签: php symfony twig symfony4 symfony3.x

我们最终将升级到Symfony 3,但这会导致一些问题。

我要解决的当前问题是https://api.symfony.com/2.8/Symfony/Component/Form/FormTypeInterface.html#method_getName女巫已被弃用。

FormTypeInterface#getName()被用来创建一个昵称,在树枝表单模板中被使用。

自定义表单类型示例:

class MyCustomType extends AbstractType {

    // ...

    public function getName() {
        return 'my_custom';
    }

}

Twig中的示例模板行:

{% block my_custom_row %}

    {# ... #}

{% endblock %}

问题:

Symfony 3+中自定义表单类型的命名约定是什么?即我应该如何命名树枝块以自定义表单行/窗口小部件/错误呈现?

1 个答案:

答案 0 :(得分:1)

默认情况下,Twig块应命名为FormType后缀为Type的类。即。 my_custom_row代表*_row区块。

其他更自定义的方式是添加功能getBlockPrefix()https://api.symfony.com/3.1/Symfony/Component/Form/FormTypeInterface.html#method_getBlockPrefix)。该函数应该返回与getName()之前完全相同的块名前缀,但这是可选的,并且仅当块前缀与类名不同时才需要。

在Symfony4中,还可以使用选项block_name覆盖默认值。