Поиск по блогу
13.07.2019
Ну вот, добрались и до корзины. Перед тем, как писать код — несколько слов о том, что будем делать. Для начала создадим форму для добавления товара в корзину на страницах списка товаров категории. Контроллер будет принимать POST-данные и обращаться к модели, чтобы добавить товар в корзину. Саму корзину будем хранить в сессии.
12.07.2019
Сессия позволяет сохранять пользовательские данные между запросами. При использовании чистого PHP можно получить доступ к этим данным через глобальную переменную $_SESSION. Yii2 инкапсулирует сессию в объект, что дает возможность обращаться к пользовательским данным в объектно-ориентированном стиле.
06.07.2019
У нашего поиска есть серьезная проблема — окончания слов. Например, в каталоге есть товар «Мужские зимние ботинки», а пользователь ищет «зимняя обувь». Этот товар не попадет в результаты поиска, потому что нет точного совпадения: в поисковом запросе используется слово «зимняя», а названии товара используется слово «зимние».
05.07.2019
Какой каталог товаров без поиска? Тем более, что и форма в шаблоне предусмотрена. Давайте для начала реализуем самый простой вариант с использованием LIKE. А потом немного усложним — добавим в SQL-запрос расчет релевантности и выполним редирект после отправки формы — чтобы сформировать краcивые URL.
03.07.2019
После установки Yii2 уже имеется файл view-шаблона views/site/error.php. Чтобы получить свою страницу ошибки, можно просто отредактировать этот файл. В нём доступны три переменные: $name, $message, $exception. Признак ошибки 404 — это значение свойства statusCode объекта $exception.
12.06.2019
Следующий этап — создаем модель, контроллер и представление для показа страницы товара. Для снижения нагрузки полученные от модели данные кешируем в контроллере. Заодно добавим хлебные крошки для страницы товара и для раздела каталога. Для этого создадим виджет ChainWidget и будем вызывать его в view-шаблонах товара и категории.
03.06.2019
Некий промежуточный итог — здесь все, что было сделано на текущий момент. Исправлены ошибки, допущенные ранее. Добавлены новые поля в таблицы базы данных. Переписаны некоторые фрагменты кода, которые оказались неудачными. Добавлено кеширование тяжелых фрагментов кода, связанных с выборкой данных из БД.
27.05.2019
Мы добавили мета-теги и постраничную навигацию для страниц категорий. Теперь сделаем это для страниц брендов. Пагинация для товаров бренда мало чем отличается от пагинации для товаров категории. В таблице brand базы данных предусмотрены поля keywords и description, которые заполняются при создании бренда.
15.05.2019
Сейчас на странице категории показываются все товары этой категории и всех ее потомков. Это подходит для небольшого каталога, но когда товаров много, страница будет очень большой. Давайте добавим постраничную навигацию и используем для этого класс Pagination.
13.05.2019
Для создания постраничной навигации в Yii2 предназначен класс Pagination. Использование данного класса может потребоваться там, где присутствуют большие массивы данных. Это может быть каталог товаров, лента новостей, записи блога и так далее. К примеру, давайте выведем все записи блога…