渲染Sonata Admin Twig文件找不到变量形式

时间:2016-03-09 20:42:59

标签: php symfony twig sonata

我正在使用symphony2 / sonata管理面板中的自定义控制器/功能。我想使用以下方式呈现文件:

return $this->render('SonataAdminBundle:CRUD:base_list.html.twig', array('entities' => $entities));

我收到错误

Variable "form" does not exist in SonataAdminBundle:CRUD:base_list.html.twig

在树枝上划线:

<td class="filter-type">{{ form_widget(form.getChild(filter.formName).getChild('type')) }}</td>

感谢。

2 个答案:

答案 0 :(得分:1)

您还必须将表单视图传递给渲染。

return $this->render('SonataAdminBundle:CRUD:base_list.html.twig', array('entities' => $entities, 'form' => $form->createView()));

答案 1 :(得分:1)

我想您知道您需要将表单传递给视图 所以我猜你还没有形式。

您需要在相应管理类(奏鸣曲)的控制器中工作才能呈现Datagrid表单。否则,您需要重写整个逻辑。

包括使用(或不使用)DatagridMapper的所有表单构建/处理。

您应该记住,表单和列表代表sonata-admin的主要组件(每个管理面板都是相同的),虽然它们基于symfony表单,但它代表完全自定义的行为。

因此,对于使用奏鸣曲,您需要处于奏鸣曲环境中。 (在这种情况下,他们的一个CRUD行动)