【发布时间】:2014-07-29 02:44:32
【问题描述】:
我正在尝试将控制器嵌入到这样的 Twig 模板中:
{{ render(controller('IRCGlobalBundle:MailingList:join')) }}
此控制器呈现一个基本表单以加入邮件列表:
namespace IRC\GlobalBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
use IRC\GlobalBundle\Entity\MailingList;
use IRC\GlobalBundle\Form\Type\MailingListType;
class MailingListController extends BaseController
{
public function joinAction(Request $request) {
$this->getSiteFromRequest($request);
$mailingList = new MailingList;
$mailingList->setSite($this->site);
$form = $this->createForm(new MailingListType(), $mailingList);
$form->handleRequest($request);
if ($form->isSubmitted()) {
echo "submitted form";
} else {
echo "unsubmitted form";
}
return $this->render('IRCGlobalBundle:Forms:join_mailing_list.html.twig', array(
'form' => $form->createView(),
));
}
}
问题在于 $form->isSubmitted() 方法永远不会返回 true,因此无法验证/处理表单提交。我究竟做错了什么?我是否需要将表单的目标更改为指向我的嵌入式控制器?
【问题讨论】: