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

Posted

技术标签:

【中文标题】未找到渲染 Sonata Admin Twig 文件的变量形式【英文标题】:Rendering Sonata Admin Twig Files Variable Form Not Found 【发布时间】:2016-06-24 10:52:57 【问题描述】:

我正在开发 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>

谢谢。

【问题讨论】:

【参考方案1】:

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

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

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

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

因此,要使用奏鸣曲,您需要处于奏鸣曲上下文中。 (在这种情况下,他们的 CRUD 操作之一)

【讨论】:

【参考方案2】:

你还必须传递表单视图来渲染。

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

【讨论】:

以上是关于未找到渲染 Sonata Admin Twig 文件的变量形式的主要内容,如果未能解决你的问题,请参考以下文章

Sonata admin PRE_SUBMIT 表单事件使 admin twig 变量为空

无法为命名路由“sonata_admin_dashboard”生成 URL,因为这样的路由不存在

Symfony 2.8 Twig_Error_Runtime Sonata 管理包

在 Sonata Admin 中禁用搜索

在 Sonata Admin 登录屏幕上覆盖翻译

CKEditorType 在 symfony sonata admin 中显示文本区域