我想在我的主頁上有兩種形式,來自兩個實體,在同一個控制器中。Symfony - 兩個實體在同一頁面上的兩種形式
的形式有以下幾種:
class DevisController extends Controller
{
public function DevisAction(Request $request)
{
$devis = new Devis();
$form = $this->createForm(new DevisType(), $devis);
if ($form->handleRequest($request)->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($devis);
$em->flush();
$request
->getSession()
->getFlashBag()
->add('info', 'Le devis a bien été envoyé !');
$message = \Swift_Message::newInstance();
$imgUrl = $message->attach(\Swift_Attachment::fromPath('http://img15.hostingpics.net/pics/419370oah.png'));
$message
->setSubject('Demande de devis bien reçue !')
->setFrom('[email protected]')
->setTo($devis->getEmail())
->setBody(
$this->renderView(
'OAHDevisBundle:Devis:devis_email.html.twig',
array('url' => $imgUrl)
),
'text/html'
);
$this->get('mailer')->send($message);
$message = \Swift_Message::newInstance()
->setSubject('Nouvelle demande de devis')
->setFrom('[email protected]')
->setTo('[email protected]')
->setBody(
$this->renderView(
'OAHDevisBundle:Devis:devis_recu.html.twig'
),
'text/html'
);
$this->get('mailer')->send($message);
return $this->redirect($this->generateUrl('oah_core_homepage'));
}
// Si on n'est pas en POST, alors on affiche le formulaire
return $this->render('OAHCoreBundle:Core:layout.html.twig', array(
'form' => $form->createView(),
));
}
public function NewsletterAction(Request $request)
{
$newsletter = new Newsletter();
$formEmail = $this->createForm(new NewsletterType(), $newsletter);
if ($formEmail->handleRequest($request)->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($newsletter);
$em->flush();
$request
->getSession()
->getFlashBag()
->add('info', 'Vous êtes bien inscrit à la newsletter ');
return $this->redirect($this->generateUrl('oah_core_homepage'));
}
return $this->render('OAHCoreBundle:Core:layout.html.twig', array(
'formEmail' => $formEmail->createView(),
));
}
}
第一個作品完美,第二我改變變量名,使對樹枝的差異。 所以在我的模板,我有第二:
{{ form(formEmail) }}
而且每次我有以下錯誤時間:核心:
變量「formEmail」不 OAHCoreBundle存在的layout.html在線384
請問這有什麼問題嗎?
你用'formEmail'渲染'OAHCoreBundle:Core:layout.html.twig'嗎?你是指'通訊行動'嗎? – Federkun
我編輯顯示我的整個控制器 – Flushdrew
我認爲你應該在同一個方法中創建兩個表單。您當前的代碼顯示您只運行一種表單。 –