Php Symfony2-细枝渲染控制器。约束窗体显示
我需要在带有@Route和@template注释的template principal.html.twig中呈现控制器,以便创建表单: {{rendercontroller'PprsBundle:Default:SupuestoConfig',{'strategy':'inline'} 控制器:Php Symfony2-细枝渲染控制器。约束窗体显示,php,symfony,Php,Symfony,我需要在带有@Route和@template注释的template principal.html.twig中呈现控制器,以便创建表单: {{rendercontroller'PprsBundle:Default:SupuestoConfig',{'strategy':'inline'} 控制器: /** * @Route("/configsup", name="configsup") * @Template("PprsBundle:Default:SupuestoConfig.html.tw
/**
* @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:
配置支持:
资源:@PprsBundle/Controller
类型:注释
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位数的数字时,当激活约束时,我出现了一个意外行为,因为它仅呈现显示约束错误路由/configsup的视图SupuestoConfig.html.twig,而不是整个页面principal.html.twig。如何使其工作?您正在将表单发送到SupuestoConfig仅呈现表单的操作。您应该将表单发送到最初使用{{rendercontroller'PprsBundle:Default:SupuestoConfig',{'strategy':'inline'}呈现表单的操作。在该操作中处理表单提交并显示结果
因此,这不是一个奇怪的行为。它的行为完全按照您告诉程序的方式进行。还有其他解决方案吗?我在同一个视图principal.html.twig中创建了两个不同的嵌入表单,我认为我不应该在同一个控制器中添加所有代码来避免这种行为,因为表单视图中会显示约束错误。从您的SupuestoConfigAction如果表单无效,您可以将该操作转发给主体操作,这样不仅可以呈现表单,还可以呈现整个页面。谢谢,这很有意义!我正在尝试在表单无效的情况下重定向页面,但这样做我无法将验证表单错误传输到主页:这就是为什么您应该查看转发不是重定向用户的控制器。$this->forward'PprsBundle:Default:principal',array'numero_supuesto'=>$sesion->get'numero_supuesto';与重定向的工作方式相同。它不显示表单约束错误。