Теги: Теория
19.09.2020
Laravel предоставляет несколько способов для валидации входящих данных. По умолчанию базовый контроллер использует трейт ValidatesRequests, который обеспечивает удобный способ валидации HTTP-запросов c большим количеством правил валидации. Рассмотрим простой пример валидации формы и вывод сообщений об ошибках для пользователя.
15.09.2020
Laravel предоставляет мощную абстракцию для работы с файловой системой благодаря php-пакету Flysystem от Франка де Жонге. Настройки файловой системы находятся в файле config/filesystems.php. В нём можно настроить так называемые «диски». Каждый диск представляет собой определенный драйвер и место хранения.
09.09.2020
Laravel включает в себя механизм наполнения базы данных начальными данными (seeding) с помощью специальных классов. Все такие классы хранятся в директории database/seeds. Они могут иметь любое имя, но лучше придерживаться какой-то логики в их именовании — например, UserTableSeeder, PostTableSeeder и т.д.
08.09.2020
Миграции — что-то вроде системы контроля версий для базы данных. Они позволяют каждому разработчику в команде изменять структуру БД, в то же время оставаясь в курсе изменений других участников. Для создания новой миграции предназначена Artisan-команда make:migration. Миграция будет помещена в директорию database/migrations…
21.08.2019
Как нетрудно догадаться из названия, метод afterSave() модели вызывается после метода save(), который осуществляет сохранение данных в БД. Например, мы хотим записать в сессию сообщение об успешном сохранении записи, чтобы затем вывести это сообщение в шаблоне. В этом случае просто добавляем метод afterSave() в класс модели.
12.07.2019
Сессия позволяет сохранять пользовательские данные между запросами. При использовании чистого PHP можно получить доступ к этим данным через глобальную переменную $_SESSION. Yii2 инкапсулирует сессию в объект, что дает возможность обращаться к пользовательским данным в объектно-ориентированном стиле.
13.05.2019
Для создания постраничной навигации в Yii2 предназначен класс Pagination. Использование данного класса может потребоваться там, где присутствуют большие массивы данных. Это может быть каталог товаров, лента новостей, записи блога и так далее. К примеру, давайте выведем все записи блога…
12.05.2019
Передавая данные через второй параметр метода render(), мы явно передаем данные в view-шаблон. Данные должны быть представлены как ассоциативный массив в виде пар ключ-значение. При рендеринге вида, php вызывает встроенную функцию extract(), чтобы переменные из массива «распаковались» в переменные view-шаблона.
06.05.2019
Допустим, нам нужно для главной страницы сайта выводить сайдбар, а для других страниц — не выводить. При этом подключение сайдбара нужно сделать в layout-шаблоне, а не в view-шаблоне, чтобы вид отвечал только за вывод контента. В этом случае нет необходимости создавать два идентичных layout-шаблона…
05.05.2019
Кэширование данных заключается в сохранении некоторой переменной PHP в кэше и её последующем извлечении. Оно является основой для расширенных возможностей, таких как кэширование запросов и кэширование страниц. Типичные варианты кэширования и получения данных…