未找到渲染 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,因为这样的路由不存在