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()
));
}
我的routing.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');
}
}
答案 0 :(得分:0)
如果你提交时,你得到一个空表格,那么似乎验证失败了,你就会再次显示表格。
如果表单有效并且您重定向,那么这将是一个新请求,因此没有任何关于您要显示详细信息的人的信息。您必须在路径中传递一些内容来标识此人,以便您可以从数据库加载其实体并将其传递给模板。