【发布时间】:2017-08-16 12:27:51
【问题描述】:
我想构建一个导航栏,显示在每个页面上。
因此我将以下代码添加到base.html.twig
{{ render(controller(
'AppBundle:Navigation:index'
)) }}
但是 $form->isSubmitted() 返回 false 和 $form->getData() 返回 null。这仅适用于上面的 twig-render 方式。如果我通过/navigation-route 正常打开 Navigation:index 页面,$form->isSubmitted() 返回true,$form->getData() 返回表单数据。
这是导航控制器:
<?php
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use AppBundle\Entity\Language;
use Doctrine\ORM\EntityManagerInterface;
use AppBundle\Form\Type\NavigationType;
class NavigationController extends Controller
{
/**
* @Route("/navigation", name="navigation")
*/
public function indexAction(Request $request, EntityManagerInterface $em)
{
$language = null;
$form = $this->createForm(NavigationType::class);
$form->handleRequest($request);
dump($language);
dump($form);
if($form->isSubmitted() && $form->isValid())
{
dump('is valid');
}
$data = $form->getData();
dump($data);
dump('isSubmitted(): ' . $form->isSubmitted());
dump($form->isSubmitted());
// replace this example code with whatever you need
return $this->render('navigation/index.html.twig', array(
'form' => $form->createView(),
));
}
}
有人有解决方法吗?
【问题讨论】: