Поиск по блогу
19.11.2020
Пусть у нас есть форма обратной связи на сайте. После отправки сообщения происходит отправка письма с данными этой формы. Но вместо того, чтобы просто отправить письмо, мы возбудим событие, перехватим его в слушателе и только после этого отправим письмо. Смысла в этом особого нет, сделано с целью изучения Laravel.
18.11.2020
Отправку почты рассмотрим на примере формы обратной связи с полями «Имя», «Почта» и «Сообщение». Нам потребуется создать контроллер, который будет показывать фому и обрабатывать POST-запрос от клиента. Потом добавим два роута и создам шаблон с формой. После этого нам потребуется создать класс FeedbackMailer…
17.11.2020
Кроме обычного удаления записей из базы данных, Eloquent также умеет удалять модели без удаления. При таком удалении модель на самом деле остаётся в базе данных, но в таблице БД устанавливается атрибут deleted_at. Если у модели ненулевое значение deleted_at, значит было использовано псевдоудаление.
11.11.2020
Аксессоры (accessors) и мутаторы (mutators) позволяют модифицировать значения атрибутов Eloquent при их чтении или записи в экземпляры моделей. Допустим, у нас есть таблица базы данных users и соотвествующая ей модель User. В таблице есть поля first_name (имя) и last_name (фамилия).
06.11.2020
Стек — это заглушка где-то в родительском шаблоне. А дочерние шаблоны могут вставлять свое содержимое на место этой заглушки. Причем старое содержимое при этом не теряется, а новое вставляется перед старым или после него. Это похоже на php-функции array_push() и array_unshift(), которые добавляют элемент в конец или начало массива.
05.11.2020
Blade — простой, но мощный шаблонизатор, поставляемый с Laravel. В отличие от других популярных шаблонизаторов не ограничивает в использовании чистого php-кода в шаблонах. Все шаблоны Blade компилируются в чистый php-код и кешируются, до того момента, как в них будет внесены изменения.
15.10.2020
Контракты в Laravel — это интерфейсы. Это название связано с тем, что почти все интерфейсы находятся в пространстве имен Contracts. Свои контракты (интерфейсы) можно хранить где угодно, например в app/Helpers/Contracts. Давайте создадим контракт и два класса, которые его реализуют.
06.10.2020
При разработке сайтов часто возникает ситуация, когда некие данные являются общими для для многих или вообще всех страниц. Например — навигация в шапке или подвале, блок с популярными записами блога, меню каталога и т.д. Именно для таких случаев в Laravel предусмотрено готовое решение — View Composers.
21.09.2020
Если по каким-то причинам нет желания использовать трейт ValidatesRequests и его метод validate(), можно создать экземпляр валидатора вручную с помощью фасада Validator, используя метод make(). Первый аргумент метода — данные, подлежащие проверке, второй аргумент — правила валидации, которые применяются к этим данным.
20.09.2020
Способ, который мы рассмотрели в первой части, подходит для проверки небольшого количества полей. Для более сложных случаев лучше создать отдельный класс, который будет проверять данные формы. Создать такой класс можно с помощью artisan-команды make:request, в результате мы получим файл app/Http/Requests/PostRequest.php.