symfony - Sonata Admin - 如何设置menu.label属性?

标签 symfony sonata-admin symfony-sonata

根据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/

相关文章:

php - GregwarCaptchaBundle : TextType could not been loaded

php - Sonata Admin Bundle 不适用于多对多实体关系

symfony - .yaml 和 .yml 扩展名有什么区别?

forms - symfony2 表单中找不到实体错误

symfony - SonataAdminBundle model_type 值以过滤器形式过滤

sonata-admin - 奏鸣曲管理员 : setting a filter to false by default?

symfony - 针对自定义表单类型使用 sonata_type_collection 而不是与另一个实体的属性/关系

symfony - 奏鸣曲 : Fatal error: Maximum function nesting level of '100' reached.。嵌入表格时

php - Symfony2 : Change dropdown values based on another field value

php - Sonata 管理 Controller + 依赖注入(inject)