Шпаргалки: Laravel подстановка строки на ключ в БД
В этой короткой заметке я поделюсь рецептом, как при выводе материалов подменить ключ хранящийся в базе данных статической строкой, без связи с другими таблицами базы.
Предположим в нас есть событие, у события есть тип: Конференция, Семинар и Форум. Соответственно в базе ячейке БД type у нас хранятся ключи: type01, type02, type03 Как при выводе в шаблон сделать подстановку значения для каждой строки?
Для начала давайте в нашей модели создадим публичную переменную и туда положим наш массив строка-значение:
public $eventType =[ 'type01' =>'Конференция', 'type02' =>'Семинар', 'type03' =>'Форум', ];
Теперь дело осталось за малым, в шаблоне вызываем наш массив $eventType и в качестве ключа передаём текущее значение {{$event->eventType[$event->type]}}
@foreach($events as $event) {{$event->title}} {{$event->eventType[$event->type]}} {{$event->city}} @endforeach
Вот и вся магия!
P.S Для связи подобнвм образом с другой моделью необходимо создать метод, например категории, и вызвать метод belongsto()
public function category() { return $this->belongsTo('App\Category'); }
Ну и в представлении остаётся вызвать сам метод и в качестве аргумента поле в связанной модели в нашем случае заголовок:
$event->category->title