Laravel: как получить последнюю запись из таблицы
Доброго времени суток. Это статья из серии фишки Laravel. И в этой статье мы рассмотрим, как быстро получить последнюю запись из таблицы с помощью Eloquent. Да можно получить все значения потом сделать сортировку по дате добавления. Но есть способ проще, точнее способ тот же, но использовать специальный метод модели. Это ведь Laravel.
И так у нас есть таблица с данными.
И мы хотим получить последнюю запись из таблицы. Я буду пользоваться примером из прошлой статьи «Laravel: как скопировать строку из таблицы используя Eloquent».
У нас есть контроллер OrderController добавим в него метод last
public function last() { $order = \App\Order::latest()->first(); return view('last',['order' => $order]); }
Метод latest() сортирует наши записи по полю created_at.
Теперь давайте создадим маршрут
Route::get('last', 'OrderController@last')->name('last');
И создадим вьюшку last.blade.php
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Вывод последней строки</title> <link href="{{ asset('css/bootstrap.min.css') }}" rel="stylesheet"> <style type="text/css"> table, th, td{ border: 1px solid; padding: 5px; } </style> </head> <body> <div class="container"> <table> <thead> <tr> <th>ID</th> <th>Название</th> <th>Дата создания</th> <th>Дата обновления</th> <th></th> </tr> </thead> <tr> <td>{{ $order->id }}</td> <td>{{ $order->name }}</td> <td>{{ $order->created_at }}</td> <td>{{ $order->updated_at }}</td> <td><a href="{{ route('copy',['id' => $order->id])}}" class="btn btn-default">Скопировать</a></td> </tr> </table> </div> </body> </html>
Все можем провертить. Переходим test.loc/last и видим:
Как видите все просто.
Заключение.
Мы с вами вывели последнюю запись из таблицы используем метод Eloquent – latest(), который сортирует записи по полю created_at. И самое интересное, этот метод мы можем использовать в отношениях.