Получение данных в Eloquent Laravel

Каждая модель Eloquent - это конструктор запросов, позволяющий делать запросы к связанной таблице. Приведём простейший пример, в котором используется метод "all", возвращающий все записи:
<?php
   use App\Food;
   $flights = App\Food::all();
   foreach ($food as $el) {
      echo $el->name;
   }
?>
Если нужно сделать определённую выборку, то можно добавить ограничения в запрос, а затем использовать метод get:
<?php
   $food = App\Food::where('active', 'Y')
      ->orderBy('name', 'desc')
      ->take(10)
      ->get();
?>
Для получения только одной записи из таблицы необходимо использовать метод "find", который в качестве параметра принимает id записи. А если передать вместо id массив из id, то можно получить сразу несколько записей:
<?php
   $mainFood = App\Food::find(1);

   $someFood = App\Food::find([1, 4, 6]);
?>
Все методы из конструктора запросов также доступны при работе с Eloquent. К примеру, попробуем поставить условие через метод "where" и получить первую запись методом "first":
<?php
   $mainFood = App\Food::where('id', 9)->first();
?>
Порой искомые данные могут быть не найдены. Тогда для генерации отклика 404 для страницы "документ не найден" в Laravel можно использовать методы findOrFail и firstOrFail. Эти методы автоматически вызовут исключение "ModelNotFoundException", если результат запроса будет пустым:
<?php
   $model = App\Food::findOrFail(1);

   $model = App\Food::where('id', '>', 93)->firstOrFail();
?>
Чтобы поймать исключение ModelNotFoundException, можно составить следующую логику в файле app/Exceptions/Handler.php:
<?php
   use Illuminate\Database\Eloquent\ModelNotFoundException; 
   class Handler extends ExceptionHandler { 
      public function render($request, Exception $e) {
         if ($e instanceof ModelNotFoundException) {
            // код для обработки исключения
         }
         return parent::render($request, $e);
      }
   }
?>
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Cмотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб