2016-12-22 11 views
4

У меня есть небольшая проблема с сонатным администратором на Symfony я бы изменить метку администратора по умолчанию на навигационной цепочкесонаты ярлык администратора на навигационной цепочке

enter image description here

, но я не найти какое-либо решение, кто-то может мне помочь ?

я нашел эту функцию, но не работает, похоже, что эта функция не вызывается

public function buildBreadcrumbs($action, MenuItemInterface $menu = null) { 
    $breadCrumb = parent::buildBreadcrumbs($action, $menu); 

    return $breadCrumb; 
} 

пс. я использую symfony 2.8 спасибо

+0

Если вы просто хотите изменить переводы этикеток, а не их структура, вы можете переопределить 'sonata_breadcrumb' блок в' SonataAdminBundle :: standard_layout.html .twig'. Поместите правильный домен перевода для 'label' var и переведите в него свои метки. –

+0

mmm Я новичок сонаты, у вас есть пример? –

+0

пс. я не хочу переводить «Список», но «тестовый продукт» правильный брек-тумба Панель приборов/продукт/список продуктов OR Панель приборов/Список продуктов/Список продуктов –

ответ

8

Попробуйте переопределить classNameLabel недвижимость в админ класса

// in your ProductAdmin class 
public function configure() 
{ 
    parent::configure(); 
    $this->classnameLabel = "Products"; 
} 
+0

он работает, спасибо! –

+1

Вам не нужно иметь это в методе configure, просто добавьте защищенный var в начало вашего класса ProductAdmin: 'protected $ classnameLabel = 'Products';' – lopsided

+0

@ AndreaG.Pigliafreddo Вы должны пометить этот ответ, если он правильный для вас. –

0

Самый простой способ добиться того, что вы хотите, - это изменить переводы сообщений.

Если вы действительно хотите изменить ярлыки, вы можете реализовать собственную стратегию генерации меток.

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])~', '_$1', $label))); 
    } 
} 

определяет его как сервис

blast_core.label.strategy.librinfo: 
     class: Blast\CoreBundle\Translator\LibrinfoLabelTranslatorStrategy 

затем передать его в определение вашей службы администратора следующим образом:

Вы будете иметь полный контроль над вашими админами этикеткой

См. Также: SonataAdmin: replace ID in breadcrumbs