Поиск по блогу
17.09.2020
Прежде, чем двигаться дальше, давайте внесем пару мелких изменений в проект. Во-первых, у нас сейчас два почти одинаковых шаблона create.blade.php и edit.blade.php. Во-вторых, если будет запрошен для показа или редактирования не существующий пост — будет выброшено исключение. Лучше в этом случае показать страницу 404.
16.09.2020
Хорошо, с добавлением нового поста вроде разобрались, теперь нужно его показать. Для этого создаем новый шаблон show.blade.php, добавляем новый маршрут, реализуем метод show() контроллера. В шаблонах index.blade.php и search.blade.php делаем ссылку для просмотра отдельного поста.
14.09.2020
Теперь нам нужно реализовать остальные методы контроллера PostController — create(), store(), show(), edit(), update() и destroy(). Давайте создадим шаблон create.blade.php, добавим два маршрута в файле routes/web.php и внесем изменения в метод create(), который будет просто показывать форму.
12.09.2020
Наш контроллер умеет только выводить список всех постов блога. Но нам нужно, чтобы контроллер умел еще показывать отдельный пост, добавлять новый, редактировать или удалять существующий. Поэтому удаляем файл контроллера и создаем заново с помощью artisan-команды make:controller.
11.09.2020
Создадим первый контроллер, первое представление и первый маршрут. В результате на главной странице сайта будет показан список всех постов блога. Для создания контроллера используем artisan-команду make:controller — в результате будет создан файл класса контроллера в директории app/Http/Controllers.
06.09.2020
Функционал будет минимальный — просмотр списка постов блога, просмотр отдельного поста, регистрация и авторизация, создание нового поста, редактирование или удаление ранее созданного поста. Обычные пользователи будут иметь возможность добавлять, редактировать или удалять только свои записи блога, а администратор…
18.09.2019
Код для работы со страницами уже работает, но нуждается в некоторой доработке. Нужно предоставить возможность выбора родителя для страницы, прикрутить WYSIWYG-редактор, добавить валидатор для slug, изменить надписи на кнопках и так далее. Все это мы уже делали для товаров, категорий и брендов, так что без подробностей.
17.09.2019
Перед удалением категории нужно выполнить две проверки. Первая — что категория не содержит товары. Вторая — что категория не имеет дочерних категорий. Если хотя бы одно условие ложно, категорию удалять нельзя. Добавим метод beforeDelete() в класс модели Category. И добавим аналогичную проверку перед удалением бренда.
14.09.2019
Добавим загрузку и ресайз изображений для категорий и брендов. Здесь все по аналогии с загрузкой и ресайзом изображений для товаров. Посколько мы это уже делали, нет смысла все подробно описывать. Так что только исходные коды контроллеров, моделей и view-шаблонов с формой.
11.09.2019
Теперь займемся формой для добавления и редактирования товара. Установим расширение CKEditor, чтобы добавить WYSIWYG-редактор для удобной работы с описанием товара. И организуем загрузку картинки товара с использованием класса yii\web\UploadedFile. Начнем с установки расширения CKEditor через Composer.