面包屑上的奏鸣曲管理员标签
sonata admin label on breadcrumb
我对 Symfony 上的 sonata admin 有点问题。
我想更改面包屑中的默认管理标签:
但我找不到任何解决方案。有人可以帮助我吗?
我找到了这个功能,但是没有用。好像没有调用这个函数
public function buildBreadcrumbs($action, MenuItemInterface $menu = null) {
$breadCrumb = parent::buildBreadcrumbs($action, $menu);
return $breadCrumb;
}
我使用 Symfony 2.8。
实现您想要的效果的最简单方法是更改翻译消息。
如果您真的想更改标签,您可以实施自己的标签生成策略。
namespace Blast\CoreBundle\Translator;
use Sonata\AdminBundle\Translator\LabelTranslatorStrategyInterface;
/**
* Class LibrinfoLabelTranslatorStrategy.
*
* Provides a specific label translation strategy for Librinfo.
* It is based on UnderscoreLabelTranslatorStrategy, but without the context,
* and labels are prefixed by "librinfo.label."
*
* i.e. isValid => librinfo.label.is_valid
*/
class LibrinfoLabelTranslatorStrategy implements LabelTranslatorStrategyInterface
{
/**
* {@inheritdoc}
*/
public function getLabel($label, $context = '', $type = '')
{
$label = str_replace('.', '_', $label);
return sprintf('%s.%s.%s', "librinfo", $type, strtolower(preg_replace('~(?<=\w)([A-Z])~', '_', $label)));
}
}
将其定义为服务
blast_core.label.strategy.librinfo:
class: Blast\CoreBundle\Translator\LibrinfoLabelTranslatorStrategy
然后像这样将它传递给您的管理服务的定义:
crm.organism:
class: Librinfo\CRMBundle\Admin\OrganismAdmin
arguments: [~, Librinfo\CRMBundle\Entity\Organism, LibrinfoCRMBundle:OrganismAdmin]
tags:
- name: sonata.admin
manager_type: orm
group: Customers Relationship Management
label_translator_strategy: blast_core.label.strategy.librinfo
您将完全控制您的管理标签
另见:SonataAdmin: replace ID in breadcrumbs
尝试在您的管理员中覆盖 classNameLabel
属性 class:
// in your ProductAdmin class
public function configure()
{
$this->classnameLabel = "Products";
}
我对 Symfony 上的 sonata admin 有点问题。
我想更改面包屑中的默认管理标签:
但我找不到任何解决方案。有人可以帮助我吗?
我找到了这个功能,但是没有用。好像没有调用这个函数
public function buildBreadcrumbs($action, MenuItemInterface $menu = null) {
$breadCrumb = parent::buildBreadcrumbs($action, $menu);
return $breadCrumb;
}
我使用 Symfony 2.8。
实现您想要的效果的最简单方法是更改翻译消息。
如果您真的想更改标签,您可以实施自己的标签生成策略。
namespace Blast\CoreBundle\Translator;
use Sonata\AdminBundle\Translator\LabelTranslatorStrategyInterface;
/**
* Class LibrinfoLabelTranslatorStrategy.
*
* Provides a specific label translation strategy for Librinfo.
* It is based on UnderscoreLabelTranslatorStrategy, but without the context,
* and labels are prefixed by "librinfo.label."
*
* i.e. isValid => librinfo.label.is_valid
*/
class LibrinfoLabelTranslatorStrategy implements LabelTranslatorStrategyInterface
{
/**
* {@inheritdoc}
*/
public function getLabel($label, $context = '', $type = '')
{
$label = str_replace('.', '_', $label);
return sprintf('%s.%s.%s', "librinfo", $type, strtolower(preg_replace('~(?<=\w)([A-Z])~', '_', $label)));
}
}
将其定义为服务
blast_core.label.strategy.librinfo:
class: Blast\CoreBundle\Translator\LibrinfoLabelTranslatorStrategy
然后像这样将它传递给您的管理服务的定义:
crm.organism:
class: Librinfo\CRMBundle\Admin\OrganismAdmin
arguments: [~, Librinfo\CRMBundle\Entity\Organism, LibrinfoCRMBundle:OrganismAdmin]
tags:
- name: sonata.admin
manager_type: orm
group: Customers Relationship Management
label_translator_strategy: blast_core.label.strategy.librinfo
您将完全控制您的管理标签
另见:SonataAdmin: replace ID in breadcrumbs
尝试在您的管理员中覆盖 classNameLabel
属性 class:
// in your ProductAdmin class
public function configure()
{
$this->classnameLabel = "Products";
}