【问题标题】:Symfony form submission redirect to a page and display what user just inputtedSymfony 表单提交重定向到页面并显示用户刚刚输入的内容
【发布时间】:2014-05-15 15:16:17
【问题描述】:

Symfony 的新手。我创建了一个提交表单,我希望它重定向到 1) 提交成功页面,该页面显示用户刚刚提交的内容,以及 2) 如果字段输入不正确,则会出现错误页面。但是,当我输入字段并提交时,它只会将我带到带有空字段的同一页面。

我有我的控制器:

class DefaultController extends Controller
{
    public function indexAction(Request $request)
     {
       $newperson = new Person();       
      $personform = $this->createForm(new PersonType(), $newperson);

    if($this->getRequest()->getMethod() == 'POST') {
        $personform->bind($this->getRequest());
        if($personform->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->persist($newperson);
            $em->flush();

        return $this->redirect($this->generateUrl('cir_submitsuccess'));

        }
    }           
    return $this->render('CIRBundle:Default:index.html.twig', array(
        'personform'    => $personform->createView()
    ));             
}

我的路由.yml:

cir_submitsuccess:
pattern: /submit
defaults: { _controller: CIRBundle:Validation:index }

还有我的 index.html.twig:

{% extends '::base.html.twig' %}

{% block body %}

{% if person is defined %}
     <ul>
     {% for person in person %}
        <li>{{person.firstname}} {{person.lastname}} who is {{person.age}} years old and works as a {{person.position}} living in {{person.city}}
     {% endfor %}
     </ul>
     {%endif%}
  <br/>
 {% endblock %}

验证控制器:

class ValidationController extends Controller
{   
public function indexAction() {

     return $this->render('CIRBundle:Validatiion:index.html.twig');     
}   
}

【问题讨论】:

  • 你能贴出cir_submitsuccess的路线代码吗?
  • @Alberto Fernández 我做了,你的意思是 routing.yml 正确吗?
  • 我说的是Validation 控制器。
  • 好的,刚刚编辑完毕。

标签: forms symfony redirect submit twig


【解决方案1】:

如果您在提交时得到一个空表单,那么似乎验证失败并且您将再次显示该表单。

如果表单验证并且您重定向,这将是一个新请求,因此它没有任何关于您要为其显示详细信息的人的信息。你必须在路由中传递一些东西来识别这个人,这样你就可以从数据库中加载他们的实体并将其传递给模板。

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 2015-05-06
    • 2014-05-18
    • 1970-01-01
    相关资源
    最近更新 更多