在奏鸣曲管理员中,我们如何拥有多个级别的子管理员

Posted

技术标签:

【中文标题】在奏鸣曲管理员中,我们如何拥有多个级别的子管理员【英文标题】:In sonata admin how can we have multiple levels child admins 【发布时间】:2019-08-30 04:04:31 【问题描述】:

我需要多层管理员。第一个父级 -> 子级效果很好,但似乎我无法添加第三个。

例如,我的结构如下:

祖父母 -> 父母 -> 孩子

父“祖父母”管理员和子“父”管理员效果很好。但是,当我尝试将第三层添加到选项卡菜单时,我看到:

在渲染模板期间引发了异常 ("找不到路线 sonata.admin.grandparent|sonata.admin.parent|sonata.admin.child.list")。

我对内部工作原理还不够熟悉,无法弄清楚这一点……有什么想法吗?谢谢!

【问题讨论】:

你用过cache:clear吗? 现在我可以确认多次这样做了,不清除缓存会导致此错误。感谢您的答复!我想不出 Symfony 中有太多需要清除缓存才能运行的东西。 【参考方案1】:

config/services.yaml

App\Admin\ParentAdmin:
calls:
    - [addChild, ['@App\Admin\ChildAdmin', 'parent']]
App\Admin\GrandParentAdmin:
calls:
    - [addChild, ['@App\Admin\ParentAdmin', 'grandParent']]

不确定上述方法是否有效,但您有 GrandParent -> Parent -> Child。 More information.

希望对你有帮助!

【讨论】:

感谢您的回答。老实说,我不确定我做错了什么,但我改变了很长时间的代码,最终它才开始工作。这是正确的答案,它对我有用,谢谢!

以上是关于在奏鸣曲管理员中,我们如何拥有多个级别的子管理员的主要内容,如果未能解决你的问题,请参考以下文章

编辑对象奏鸣曲管理包

如何在奏鸣曲管理员中为路由设置主机?

如何使用奏鸣曲管理员创建自定义列表

抽象类的奏鸣曲管理员:如何按子类属性过滤

如何在奏鸣曲管理类中获取容器实例?

如何在奏鸣曲管理列表视图中添加“后备标签”