Рубрика: Курс по Laravel 2

21. Данные сайдбара21. Данные сайдбара

View Composer Изменим app/Providers/AppServiceProvider.php : public function boot() { view()->composer(['layouts.category_layout', 'layouts.layout'], function ($view) { $view->with('categories', Category::select('title', 'slug')->withCount('posts')->orderBy('posts_count', 'desc')->get())->with('popularPosts', Post::orderBy('views', 'desc')->limit(3)->get()); }); }   То есть теперь мы передаем переменные $categories,

20. Статьи по тегу20. Статьи по тегу

Контроллер Создадим Http/Controllers/TagController.php с содержимым: <?php namespace App\Http\Controllers; use App\Models\Tag; use App\Models\Category; class TagController extends Controller { public function show($slug) { $tag = Tag::where('slug', $slug)->firstOrFail(); $posts = $tag->posts()->with('category')->orderBy('id', 'desc')->paginate(2); $categories

18. Страница отдельной статьи18. Страница отдельной статьи

Изменим app/Http/Controllers/PostController.php: public function show($slug) { $categories = Category::select('title', 'slug')->get(); $post = Post::where('slug', $slug)->firstOrFail(); ++$post->views; $post->update(); return view('posts.show', compact('post', 'categories')); } Там же в index добавим: $categories = Category::select('title', 'slug')->get();

17. Лента статей17. Лента статей

Админский сайдбар Сделаем сайдбар постоянно свернутым. Для обратимся к инструкции https://adminlte.io/docs/3.1//javascript/push-menu.html . Редактируем resources/views/admin/layouts/layout.blade.php : <a class="nav-link" data-widget="pushmenu" href="#" data-enable-remember="true" role="button"><i class="fas fa-bars"></i></a> Мы добавили атрибут data-enable-remember=»true», чтобы меню запоминало

16. Шаблон пользовательской части. Часть 216. Шаблон пользовательской части. Часть 2

Разделяем шаблон Создадим файл resources/views/layouts/layout.blade.php , в который перенесем весь шаблон кроме контента и части хедера, которая будет только на главной. Подключим layout в show.blade и index.blade : @extends('layouts.layout') @section('header')

15. Шаблон пользовательской части. Часть 1.15. Шаблон пользовательской части. Часть 1.

Возьмем этот шаблон: https://www.free-css.com/free-css-templates/page244/markedia . Создадим контроллер: php artisan make:controller PostController С содержимым: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PostController extends Controller { public function index() { return view('posts.index'); }

14. Визуальный редактор14. Визуальный редактор

Зайдем на сайт https://ckeditor.com/ckeditor-5/online-builder/  . Соберем нужные нам функционал. Выберем язык и скачаем. Зайдем в https://ckeditor.com/ckfinder/download/ и скачаем ckfinder для php. Либо установим пакет https://packagist.org/packages/ckfinder/ckfinder-laravel-package . Разархивируем в папку всё

13. Авторизация13. Авторизация

Создадим три рута: Route::get('/login', '[email protected]')->name('login.create'); Route::post('/login', '[email protected]')->name('login'); Route::get('/logout', '[email protected]')->name('logout'); Вью Создадим вью resources/views/user/login.blade.php : <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Регистрация</title> <!-- Google Font: Source