Laravel – перебор внутри контроллера с привязкой к модели

319
13 февраля 2017, 17:11

Пытаюсь вывести информацию из базы данных и привязать к ней изображения – хочу следовать шаблону mvc.

// Контроллер 
$events = Event::where('show_or_not', '=', 'show')
   ->get();
// А здесь мне нужно подцепить картинку для каждого id из перебора
foreach ($events as $event) {
   if (file_exists(public_path( 'img/'.$event->id.'.jpg' ))) {
      $img = '<img src="public_path( img/'.$event->id.'.jpg )">'
   }
}

Как все это сделать правильно? Возможно нужно прописать как функцию в модели? И как потом выводить в представлении?

Answer 1

В итоге сделал через функцию в модели. Спасибо всем за обсуждение.

// Контроллер
$events = Event::where('show_or_not', '=', 'show')
   ->get();
// Модель
public function eventImage() {
   $img = '<img src="public_path( img/'.$this->id.'.jpg )">';
   return $img;
}
// Представление
@foreach ($events as $event)
   {{ $event->eventTitle }}
   {{ $event->eventImage() }}
@endforeach
READ ALSO
Как изменить редирект при авторизации в Laravel 5.4

Как изменить редирект при авторизации в Laravel 5.4

Использую встроенную авторизацию LaravelСвойство protected $redirectTo = '/'; везде заменено и при входе/регистрации всё работает как надо

452
Почему не продолжается цикл с continue? [требует правки]

Почему не продолжается цикл с continue? [требует правки]

Останавливается на 0, отрицательные значения не выводит

253
изменение основного цикла wordpress

изменение основного цикла wordpress

Нужно чтобы на странице категорий выводились посты только с определенным тегом, при этом посты самой категории не должны учитыватьсяТ

245
Запрос INSERT INTO не добавляет данные в MySQL

Запрос INSERT INTO не добавляет данные в MySQL

Из БД данные достает нормально, а добавлять не хочет, при нажатии на кнопку "Добавить" ничего не отправляет и возвращает на эту же страницуПодскажите...

282