我嘗試在同一頁面中創建一個簡單的登錄註冊表。登錄一種表單登錄的一種形式。我正在使用symfony(2.6)Symfony 2在同一頁面中的多個表單Submition
我設法在頁面中呈現2個表單,但如果我嘗試提交註冊表單,則會向我發送其他表單不能爲emty的消息。
之前,我試圖合併我註冊工作沒有任何proble的網頁我登錄不(剛創建的形式),我的代碼:
是渲染到模板AccountController.php文件。表單創建已RegistrationType.php和LoginType.php
<?php
namespace Spyros\MapBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Spyros\MapBundle\Form\Type\RegistrationType;
use Spyros\MapBundle\Form\Type\LoginType;
use Spyros\MapBundle\Form\Model\Registration;
use Spyros\MapBundle\Form\Model\Login;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class AccountController extends Controller
{
public function registerAction()
{
$registration = new Registration();
$form1 = $this->createForm(new RegistrationType(), $registration, array(
'action' => $this->generateUrl('account_create'),
));
$login = new Login();
$form2 = $this->createForm(new LoginType(), $login, array(
'action' => $this->generateUrl('account_create'),
));
return $this->render(
'SpyrosMapBundle:Account:register.html.twig',
array('form1' => $form1->createView(),
'form2' => $form2->createView())
);
}
public function createAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$form1 = $this->createForm(new RegistrationType(), new Registration());
$form1>handleRequest($request);
if ($form1->isValid()) {
$registration = $form1->getData();
$em->persist($registration->getUser());
$em->flush();
echo "<p>hi</p>";
}
return $this->render(
'SpyrosMapBundle:Account:register.html.twig',
array('form1' => $form1->createView())
);
}
}
register.html.twig實施
{% extends 'SpyrosMapBundle::rightform.html.twig' %}
{% form_theme form1 'bootstrap_3_layout.html.twig' %}
{% form_theme form2 'bootstrap_3_layout.html.twig' %}
{% block body %}
<body>
<section class="container">
<section class="row">
<section class="col col-lg-9">
{{ form_start(form2 , {'attr': {'class': 'form-inline'}})}}
{{ form_row(form2.user.email)}}
{{ form_row(form2.user.plainPassword)}}
<div id="inline">
{{ form_row(form2.Login) }}
</div>
</section>
<section class="col col-lg-3">
{{ form(form1) }}
</section>
</section>
</section>
</body>
{% endblock %}
我查看網頁:
如何提交我的註冊表格(form1)沒有form2給我一個信息來填補它的領域。
不要使用相同的動作=「」每種形式,但要爲每個表單專用的控制器,並確保沒有試圖處理其他的。 – Erik 2014-12-03 12:21:55
如果我爲每個表格製作2個專用控制器,我將如何將它們租賃給同一頁面? – 2014-12-03 12:31:47
你是什麼意思?你希望能夠同時填寫和發送兩份表格嗎? – Erik 2014-12-03 12:35:13