我需要使用@Route和@Template注释在模板(principal.html.twig)中渲染控制器以创建表单:
{{ render(controller('PprsBundle:Default:SupuestoConfig'), {'strategy': 'inline'}) }
控制器:
/**
* @Route("/configsup", name="configsup")
* @Template("PprsBundle:Default:SupuestoConfig.html.twig")
*/
public function SupuestoConfigAction()
{
...
->add('number', 'text', array(
'constraints' => new Length(array(
'min' => 1,
'max' => 2,
)),
....
}
的routing.yml:
configsup:
resource: "@PprsBundle/Controller"
type: annotation
SupuestoConfig.html.twig:
<form id="configurador" action="{{ path('configsup') }}" method="POST">
<p class="titulo_configurador">Elija supuesto penal:</p>
{{ form_row(form.tipo) }}
{{ form_row(form.numero, { 'label' : ' ', 'attr' : { 'class' : 'rec3' }}) }}
{{ form_rest(form) }}
<input id= "btTipoSupuesto" type="submit" value="Cargar" class="inputbt"/>
</form>
当激活约束时(当我在“数字”字段中引入4位数字时),我遇到了意外行为,因为它只显示视图 SupuestoConfig.html.twig 显示约束错误(route / configsup)而不是整个页面(principal.html.twig)。我怎样才能使它发挥作用?
答案 0 :(得分:0)
您正在将表单发送到仅呈现表单的SupuestoConfigAction
。您应该将表单发送到最初呈现表单的操作(使用{{ render(controller('PprsBundle:Default:SupuestoConfig'), {'strategy': 'inline'}) }
的位置。)在该操作中处理表单提交并显示结果。
所以这不是一个奇怪的行为。它的行为与您告诉程序完全一样。