Yii2 и Laravel
25.11.2020
События в Laravel представлены реализацией паттерна Observer, что позволяет подписываться и прослушивать события приложения. Как правило, классы событий находятся в директории app/Events, а классы обработчиков событий — в app/Listeners. Класс события не содержит логики — это просто контейнер для объекта.
21.11.2020
Конструктор запроса предоставляет удобный интерфейс для создания и выполнения запросов к базе данных. И может использоваться для выполнения большинства типов операций. Конструктор использует привязку параметров к запросам средствами PDO для защиты от SQL-инъекций. Нет необходимости экранировать строки перед их передачей в запрос.
20.11.2020
У Laravel для работы с базой данных есть механизм под названием Eloquent, плюс имеется мощный конструктор запросов (Query Builder), но иногда необходимо написать просто «сырой» запрос (Raw Query). Это можно сделать с помощью фасада Illuminate\Support\Facades\DB, который имеет методы для каждого типа запроса.
19.11.2020
Пусть у нас есть форма обратной связи на сайте. После отправки сообщения происходит отправка письма с данными этой формы. Но вместо того, чтобы просто отправить письмо, мы возбудим событие, перехватим его в слушателе и только после этого отправим письмо. Смысла в этом особого нет, сделано с целью изучения Laravel.
18.11.2020
Отправку почты рассмотрим на примере формы обратной связи с полями «Имя», «Почта» и «Сообщение». Нам потребуется создать контроллер, который будет показывать фому и обрабатывать POST-запрос от клиента. Потом добавим два роута и создам шаблон с формой. После этого нам потребуется создать класс FeedbackMailer…
17.11.2020
Кроме обычного удаления записей из базы данных, Eloquent также умеет удалять модели без удаления. При таком удалении модель на самом деле остаётся в базе данных, но в таблице БД устанавливается атрибут deleted_at. Если у модели ненулевое значение deleted_at, значит было использовано псевдоудаление.
16.11.2020
Поскольку у нас теперь товары имеют атрибуты new, hit и sale, мы можем их отбирать по этим атрибутам. Другими словами — реализовать фильтр товаров. Давайте создадим шаблон filter.blade.php в директрии views/catalog/part и подключим его в шаблоне views/catalog/category.blade.php.
11.11.2020
Аксессоры (accessors) и мутаторы (mutators) позволяют модифицировать значения атрибутов Eloquent при их чтении или записи в экземпляры моделей. Допустим, у нас есть таблица базы данных users и соотвествующая ей модель User. В таблице есть поля first_name (имя) и last_name (фамилия).
09.11.2020
На главной странице сайта будем показывать новинки, лидеров продаж и товары распродажи. Для этого нам надо добавить в таблицу базы данных products три новых поля — new, hit и sale. Тогда для главной страницы сможем отобрать и показать три коллекции. Потребуется добавить на форму для редактирования товара три checkbox-а.
06.11.2020
Стек — это заглушка где-то в родительском шаблоне. А дочерние шаблоны могут вставлять свое содержимое на место этой заглушки. Причем старое содержимое при этом не теряется, а новое вставляется перед старым или после него. Это похоже на php-функции array_push() и array_unshift(), которые добавляют элемент в конец или начало массива.