根据Sonata源代码,面包屑中的最后一个节点是这样渲染的:
# standard_layout.html.twig #
<li class="active"><span>{{ menu.label }}</span></li>
在我的设置中,当打开给定的 Admin 子类时,最后一个节点只是根据 Admin 处理的实体变成原始字符串:
Dashboard / Entity List / Acme\SomeBundle\Entity\Stuff:000000001d74ac0a00007ff2930a326f
如何设置 menu.label 的值以获得更合适的值?我尝试在我的 Admin 子类中覆盖以下内容:
protected function configureTabMenu(MenuItemInterface $menu, $action, AdminInterface $childAdmin = null) {
$this->configureSideMenu($menu, $action, $childAdmin);
}
protected function configureSideMenu(MenuItemInterface $menu, $action, AdminInterface $childAdmin = null) {
$menu->setLabel("Some nice label");
$menu->setName("Some nice name");
}
但是,即使我已经验证上述方法在运行时被调用,这也不会改变任何东西。
最佳答案
终于找到了一个很好的(而且有些明显的)解决方案。
Sonata Admin 类使用内部 toString($object) 方法来获取它正在处理的实体的标签字符串。因此,关键是实现相关实体的 __toString() 方法:
public function __toString() {
return "test";
}
关于symfony - Sonata Admin - 如何设置menu.label属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23526839/