Laravel Как автоматом сгенерировать slug строку на руусском языке ?

mstdmstd

Новичок
Всем привет
Обычно в laravel приложениях когда мне нужно автоматом сгенерировать slug строку я использую
cviebrock/eloquent-sluggable плагин и он успешно справляется с английским текстом

Понадобилось сделать сайт на русском языке и из строки
Код:
Свадебные фотографии
eloquent-sluggable сгенерировал слаг
Код:
svadebnye-fotografii
Что конечно неправильно
И хотя самому сгенерировать строку
Код:
свадебные-фотографии
несложно, не подскажите удобные тулзы для этого с проверкой уникальности тагов в базе.


И как русский текст работает в слагах ? На что нужно обратить внимание при SEO реализации ?
Пожалуйста поделитесь опытом или ссылку на хорошую доку ...

Спасибо!
 

Allality

Новичок
Сейчас использовать целый пакет для этого не нужно. Вот здесь пример как можно реализовать простым мутатором.

Хелпер slug отлично справляется с задачей и подходит для SEO. Если нужно именно "свадебные-фотографии", используй ларавелевские хелперы lower и replace или их PHP аналоги.
 

mstdmstd

Новичок
Думаю это неправильное решение. Если значения схожи, то может быть сгенерировано несколько одинаковых слагов.
 

Allality

Новичок
Это просто пример. Добавь проверку на дубликаты в цикле while типа $this->where('slug', $slug)->exists(), если боишься, что подобное может произойти или добавляй ID в URL, как сделано на этом форуме. Очень простых решений море. Использовать пакет сейчас - это оверкилл. Я сам его использовал и даже писал свой под русские слаги, сейчас в этом нет необходимости.
 

mstdmstd

Новичок
Спасибо за полезную инфу! И кстати а как правильно перевести "slug" на русский язык?
 
Сверху