Теги: Практика
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
Функционал будет минимальный — просмотр списка постов блога, просмотр отдельного поста, регистрация и авторизация, создание нового поста, редактирование или удаление ранее созданного поста. Обычные пользователи будут иметь возможность добавлять, редактировать или удалять только свои записи блога, а администратор…
29.09.2019
При редактировании с помощью WYSIWYG-редактора страницы сайта может возникнуть необходимость загрузки изображений, так что установим файловый менеджер ELFinder. Кроме того, создадим отдельную страницу 404 Not Found для панели управления, потому что сейчас используется страница 404 общедоступной части сайта, что не очень удобно.
22.09.2019
Сейчас для показа всех страниц в панели управления используется класс ActiveDataProvider и виджет GridView. Нам это не подходит, потому что страницы надо показывать с учетом иерархии. По аналогии с категориями каталога изменим метод контроллера actionIndex() и view-шаблон index.php.
18.09.2019
Код для работы со страницами уже работает, но нуждается в некоторой доработке. Нужно предоставить возможность выбора родителя для страницы, прикрутить WYSIWYG-редактор, добавить валидатор для slug, изменить надписи на кнопках и так далее. Все это мы уже делали для товаров, категорий и брендов, так что без подробностей.
17.09.2019
Перед удалением категории нужно выполнить две проверки. Первая — что категория не содержит товары. Вторая — что категория не имеет дочерних категорий. Если хотя бы одно условие ложно, категорию удалять нельзя. Добавим метод beforeDelete() в класс модели Category. И добавим аналогичную проверку перед удалением бренда.