Учебное пособие по Laravel (Серия из 12 частей)
Вы можете скачать исходный код этого руководства здесь: https://www.techjblog.com/index.php/laravel-tutorial-for-beginners/
В этом посте мы создадим некоторые дополнительные функции для нашего веб-сайта. Если вам не интересно, просто пропустите этот пост и перейдите к разделу “Окончательное развертывание” этого руководства.
Пагинация
Когда мы добавляем все больше и больше постов в наш блог, создание разбиения на страницы может быть хорошей идеей, так как мы не хотим, чтобы на одной странице было слишком много постов.
Во-первых, нам нужно добавить некоторые коды в наши контроллеры, IndexController например:
$posts = Post::where('is_published',true)->orderBy('id','desc')->paginate(5);
Обратите внимание на последний метод, вместо get() у нас есть разбиение на страницы(5) . Это означает, что у нас будет по 5 постов на каждую страницу. Конечно, вы можете изменить этот номер на любой, который вам нравится.
И теперь нам нужно указать Laravel, куда добавить этот пагинатор. Перейти к resources/views/widgets/blog-masonry.blade.php
-
{{$posts->links()}}
Обновите страницу, и вы увидите это внизу.
Сделайте то же самое для всех страниц, которым требуется разбиение на страницы.
Если результат не оформлен в стиле, попробуйте указать структуру следующим образом:
{{$posts->links("pagination::bootstrap-4")}}
Связанные сообщения
Идея состоит в том, чтобы получать сообщения с одинаковыми тегами.
app/Http/Controllers/PostController.php
//related posts
$related_posts = Post::query()->where('is_published',true)->whereHas('tags', function ($q) use ($post) {
return $q->whereIn('name', $post->tags->pluck('name'));
})
->where('id', '!=', $post->id)->take(3)->get();
Строка 3, $post->теги->вырвать('имя') возвращает массив со всеми тегами сообщения.
Строка 5, где('идентификатор', '! =', $post->идентификатор) гарантирует, что одно и то же сообщение не будет включено.
Не забудьте вернуть $related_posts .
Теперь добавьте раздел “связанные сообщения” в представление:
Related Posts
@foreach($related_posts as $post)@endforeach![]()
{{\Illuminate\Support\Str::limit(strip_tags($post['content']), 100, '...')}}
Если вы устали от кодирования, всегда есть простой способ, используя Добавьте это . У них есть соответствующие посты, кнопки “Поделиться”, формы подписки и множество других инструментов, которые могут вам пригодиться.
Комментарии
Во-первых, зарегистрируйте Дискус учетная запись.
Создайте новый сайт.
Следуйте инструкциям и поместите код в нужное место, а Disqus позаботится обо всем остальном.
Пожалуйста, прокомментируйте ниже, если вы считаете, что есть еще какие-то функции, которые вы хотите добавить. Я положу их сюда как можно скорее.
Статьи по теме
Как сделать Ваш Сервер Более безопасным
Учебник По Laravel Для Начинающих
Учебник По Джанго Для Начинающих
Создайте Преобразователь Единиц Измерения с Vue.js
Учебное пособие по Laravel (Серия из 12 частей)
Оригинал: “https://dev.to/ericnanhu/laravel-tutorial-9-wrap-things-up-3dki”