Информация о пользователе

Ник: alik
Страна: Узбекистан
Статус: Активен
С нами с:
23.05.2018 11:31
Лайки
Лайки: +0
Лайки
0
Дизлайки
0
Я лайкал: +2
Я лайкал
+2
Я дизлайкал
0
Комментарии
Комментировал: 3
Посты
2
Комментарии
1
Ответы: 3
Посты
0
Комментарии
3
Laravel 5.5 и slug. Что такое слаги и зачем они нужны.
alik писал(а):
Здравствуйте Кирилл! Со слагами все получилось.Спасибо. Слаги генерируются, но почему то на латинице хотя в поле источнике идет кириллица. Например в источнике - 'Продтовары' -а в поле slug- prodtovary(при этом в источнике с Большой буквы -'П' , а генерируется в слагах с маленькой- 'p'). Если есть возможность подскажите как сделать чтобы слаги формировались один к одному, хотя бы по графике)
Здравствуйте. Все правильно. Согласно правилам SEO слаги должны быть только на латинице и только в нижнем регистре. Кириллица очень плохо для СЕО, а заглавные буквы в урлах вообще плохая идея. И согласно лучшим рекомендациям, пакет все приводит к транслитерации и нижнему регистру.

Если же вы решили все таки делать слаги на кириллице, то тогда это можно делать и без пакета. Для этого нужно вырезать все служебные символы из заголовка и заменить пробелы знаком дефиса.
Laravel 5.5 и slug. Что такое слаги и зачем они нужны.
alik писал(а):
Или задам вопрос по другому: - слово 'source' в данном конкретном случае не является спец словом определенным внутри самого фреймворка для слагов?
Это слово является служебным и должно использоваться, как указано в документации. Так как при работе пакета со слагами он будет получать данные из ассоциативного массива, где ожидает по ключу source увидеть поле из которого должен сформироваться слаг.
Laravel 5.5 и slug. Что такое слаги и зачем они нужны.
alik писал(а):
Здравтвуйте У Вас есть блок - public function sluggable() { return [ 'slug' => [ 'source' => 'title' ] ]; помогите разобраться что это за 'source' и как он согласуется с остальным кодом, Заранее спасибо. и если ответите ответ те пожалуйста на самом сайте. Заранее спасибо
Поскольку для работы со слагами мы используем готовый пакет https://github.com/cviebrock/eloquent-sluggable То и создание слага происходит согласно документации этого пакета (раздел

Updating your Eloquent Models).

Суть такова, что мы подключаем в классе модели трэит Sluggable:

use Sluggable;

в котором описан абстрактный метод sluggable() который должен вернуть массив. Поскольку метод абстрактный:

/**
* Return the sluggable configuration array for this model.
*
* @return array
*/
abstract public function sluggable(): array;

то мы не можем его заюзать напрямую, а обязаны переопределить (реализовать). Таким образом достигается автоматическая генерация слага и запись его в базу (благодаря логике пакета).

Теперь непосредственно о самом массиве. Запись вида:

[
  'slug' =>
[
'source' => 'title' ] ]

говорит нам, что мы создаем в нашей таблице модели запись для поля slug, которое должно быть сформировано из источника source, которым в нашем примере является поле title

При сохранении модели с полем title="Привет мир" будет сформирован слаг (название поля в таблице/модели slug) из этого поля ('source' => 'title'): privet-mir

Надеюсь, я прояснил для вас этот момент. Если не поняли, то спрашивайте. Попробую объяснить по другому.