2016-03-10 2 views
1

У меня есть навык сущности и есть полевая ошибка из полевого навыка, и когда я создаю навык и пишу C++, slug = c ИЛИ если create C. - have slug = c ИЛИ, когда создается C#, все еще есть пробковый = с. Я думаю, что в Гедмо есть что-то регулярное выражение. Может быть, кто знает, как переписать Gedmo slug или hot, чтобы исправить эту проблему?Symfony генерировать slug для объекта, если конкретный символ

use Gedmo\Mapping\Annotation as Gedmo; 

/** 
* Skills. 
* 
* @ORM\Table(name="code_directory_skills") 
*/ 
class Skill 
{ 
use Timestampable; 
/** 
* @var int 
* 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
* @Expose() 
* @Groups({"for_skill_by_id", "for_all_skills", "for_all_skills_extended"}) 
*/ 
private $id; 

/** 
* @var string 
* 
* @ORM\Column(name="skill", type="string", length=255) 
* @Expose() 
* @Groups({"for_skill_by_id", "for_all_skills", "for_all_skills_extended"}) 
*/ 
private $skill; 

/** 
* @Gedmo\Slug(fields={"skill"}, updatable=true) 
* @ORM\Column(name="slug", type="string", nullable=false) 
* @Groups({"for_skill_by_id", "for_all_skills", "for_all_skills_extended"}) 
* @Expose() 
*/ 
protected $slug; 

Я создаю слушателя

namespace Artel\ProfileBundle\Listener; 

use Gedmo\Sluggable\SluggableListener as BaseSluggableListener; 

class SluggableListener extends BaseSluggableListener 
{ 
public function __construct() 
{ 
    $this->setTransliterator(array('\Artel\ProfileBundle\Util\Transliterator', 'transliterate')); 
} 
} 

и создать переводчик в $ текста У меня есть C++, то в

Urlizer::urlize($text, $separator) //have have C 

класс:

use Gedmo\Sluggable\Util\Urlizer; 

class Transliterator 
{ 
public static function transliterate($text, $separator = '-') 
{ 
    $text = Urlizer::unaccent($text); 
    return Urlizer::urlize($text, $separator); 
} 
} 

меняю

class Transliterator 
{ 
public static function transliterate($text, $separator = '-') 
{ 
    $text = Urlizer::unaccent($text); 

    return $text; //have C++ 
} 
} 

но в БД по-прежнему имеют только пробкового = с

и конфиг это расширение:

stof_doctrine_extensions: 
class: 
    sluggable: Artel\ProfileBundle\Listener\SluggableListener 
default_locale: "%locale%" 
orm: 
    default: 
     timestampable: true 
     sluggable:  true 
     softdeleteable: true 

Как в Транслитератор включить конкретный символ для Sluggable? Кто знает ? Когда отладка дважды входит в число скепсителей Transliterator

ответ

0

Вы можете определить своего собственного слушателя и решить, какую политику вы хотите применять для слизней. См. Ссылку belows.

https://github.com/Guite/MostGenerator/issues/241

В Translator::translate вы можете определить свою политику.

+0

Обновить мой вопрос. Как в Transliterator включить определенный символ для sluggable? –

Смежные вопросы