我正在开发symfony的一个博客,我又立刻陷入与被里面的布置形式嵌入。 在我的情况下,简单的搜索。
<div class="b-header-block m-search">
{{ render(controller('YagoQuinoySimpleBlogBundle:Blog:searchArticles')) }}
</div>
来渲染表单我使用的布局树枝文件内的嵌入控制器。
public function searchArticlesAction(Request $request)
{
$form = $this->createForm(new SearchArticlesType());
$form->handleRequest($request);
if ($form->isValid()) {
// Do stuff here
}
return $this->render('YagoQuinoySimpleBlogBundle:Blog:searchArticles.html.twig', array(
'form' => $form->createView()
));
}
该的indexAction是获取表单数据和过滤器的文章列表中的一个。
public function indexAction(Request $request)
{
$form = $this->createForm(new SearchArticlesType());
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
$criteria = array(
'title' => $data['search']
);
} else {
$criteria = array();
}
$articles = $this->getDoctrine()->getRepository('YagoQuinoySimpleBlogBundle:Article')->findBy($criteria, array(
'createDateTime' => 'DESC'
), 5);
return $this->render('YagoQuinoySimpleBlogBundle:Blog:index.html.twig', array('articles' => $articles));
}
SearchArticlesType是一个窗体类
class SearchArticlesType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('search', 'text', array(
'constraints' => new NotBlank()
))
->add('submit', 'submit', array(
'label' => 'Buscar'
));
}
public function getName()
{
return 'searchArticles';
}
}
问题是当我提交此表。 该做的indexAction他的一部分,验证表单和过滤的文章,但是当嵌入控制器尝试验证数据(只用于显示信息或其他)
$form->handleRequest($request);
if ($form->isValid()) {
// Do stuff here
}
我觉得我失去了一些东西。
谢谢您的帮助!