Поиск по блогу
03.10.2020
Добавим еще один контроллер BasketController, который будет отвечать за корзину покупателя. Корзины будем хранить в таблице baskets базы данных. И нам еще потребуется таблица для связи многие-ко-многим — для товаров и корзин. В одной корзине может быть несколько товаров, один товар может быть в нескольких корзинах.
02.10.2020
Мы сейчас совсем не используем модели, а все необходимые данные получаем в контроллере. Особенно некрасиво выглядит метод product() контроллера, где у нас большой и сложный запрос к базе данных. Давайте упростим методы контроллера, и будем использовать модели по их прямому назначению — для получения данных.
30.09.2020
Давайте создадим еще контроллер главной страницы сайта. У этого контроллера будет только одно действие, а следовательно — только один метод. Создать заготовку такого контроллера можно с помощью artisan-команды. При добавлении маршрута для такого контроллера не нужно указывать метод.
29.09.2020
Теперь создаем контроллер CatalogController, шаблоны index.blade.php, category.blade.php, brand.blade.php, product.blade.php и добавляем необходимые маршруты. Маршртутов для начала у нас будет пять: главная страница сайта, страница каталога, страница категории, страница бренда и карточка товара.
28.09.2020
Начнем с каталога товаров. Нам потребуются три таблицы в базе данных для хранения категорий, брендов и товаров. Подключаемся к серверу БД и создаем новую базу данных larashop. После этого создаем три модели — Category, Brand и Product вместе с файлами миграции. Отредактируем файлы классов миграций…
04.06.2020
Стандартная электронная торговля позволяет собирать данные только о совершенных транзакциях, в то время как расширенная (enhanced ecommerce) предоставляет значительно больше возможностей для сбора данных. С ее помощью можно настроить передачу данных о просмотрах карточек товаров, шагов оформления заказа и т.п.
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. И добавим аналогичную проверку перед удалением бренда.