Для создания кнопок "предыдущая" и "следующая" запись в Laravel, вы можете использовать методы Eloquent ORM для получения предыдущей и следующей записи на основе текущей записи. Этот подход часто используется в блогах, галереях и других приложениях, где нужно навигировать между записями.
Шаг 1: Получение текущей записи
Предположим, у вас есть модель Post
, и вы хотите показать кнопки "предыдущая" и "следующая" для текущего поста. Сначала вам нужно получить текущий пост. Это можно сделать, например, через маршрут с параметром ID:
use App\Models\Post;
Route::get('/post/{id}', function ($id) {
$post = Post::find($id);
return view('post.show', compact('post'));
});
Шаг 2: Получение предыдущей и следующей записи
В представлении post.show
вы можете использовать методы previous
и next
для получения предыдущей и следующей записи соответственно. Эти методы автоматически сортируют записи по умолчанию по столбцу id
.
// В представлении post.show
// Получение предыдущей записи
$previousPost = Post::where('id', '<', $post->id)->orderBy('id', 'desc')->first();
// Получение следующей записи
$nextPost = Post::where('id', '>', $post->id)->orderBy('id', 'asc')->first();
Шаг 3: Отображение кнопок в представлении
Теперь, когда у вас есть предыдущая и следующая записи, вы можете отобразить кнопки для навигации в вашем представлении.
<!-- В представлении post.show -->
@if($previousPost)
<a href="{{ route('post.show', $previousPost->id) }}">Предыдущий пост</a>
@endif
@if($nextPost)
<a href="{{ route('post.show', $nextPost->id) }}">Следующий пост</a>
@endif
Шаг 4: Определение маршрута
Убедитесь, что у вас есть маршрут, который соответствует действию show
в вашем контроллере PostController
. Если вы используете ресурсные маршруты, Laravel автоматически создаст этот маршрут для вас.
// В файле routes/web.php
Route::resource('post', PostController::class);
Этот подход позволяет легко добавить кнопки навигации между записями в вашем приложении Laravel. Вы можете адаптировать его для любой модели, просто заменив Post
на имя вашей модели.
0 комментариев