Рубрики
Uncategorized

Laravel 8 Учебное пособие №9: Подведение итогов

Вы можете скачать исходный код этого руководства здесь: https://www.techjblog.com/index.php/laravel-t … С пометкой laravel, php, учебник, для начинающих.

Учебное пособие по 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)
Card image cap

{{\Illuminate\Support\Str::limit(strip_tags($post['content']), 100, '...')}}

@endforeach

Если вы устали от кодирования, всегда есть простой способ, используя Добавьте это . У них есть соответствующие посты, кнопки “Поделиться”, формы подписки и множество других инструментов, которые могут вам пригодиться.

Комментарии

Во-первых, зарегистрируйте Дискус учетная запись.

Создайте новый сайт.

Следуйте инструкциям и поместите код в нужное место, а Disqus позаботится обо всем остальном.

Пожалуйста, прокомментируйте ниже, если вы считаете, что есть еще какие-то функции, которые вы хотите добавить. Я положу их сюда как можно скорее.

Статьи по теме

Как сделать Ваш Сервер Более безопасным

Учебник По Laravel Для Начинающих

Учебник По Джанго Для Начинающих

Создайте Преобразователь Единиц Измерения с Vue.js

Учебное пособие по Laravel (Серия из 12 частей)

Оригинал: “https://dev.to/ericnanhu/laravel-tutorial-9-wrap-things-up-3dki”