Yii2 поведение
В допълнение към това поведение, Yii предлага още няколко готови за използване поведение, като SluggableBehavior, AttributeBehavior и други. Yii също ви позволява да създавате свои собствени поведения - тази тема ни интересува в рамките на настоящата статия.
За да приложите поведение, трябва да създадете клас, който разширява базовия клас yii\base\Behavior. Нека създадем папката на компонентите в корена и класа на искове в нея:

Съвременни тенденции и подходи в уеб разработката
Научете алгоритъма за бърз растеж от нулата в изграждането на уебсайт

Като казус ще създадем поведение, което по някакъв начин ще промени заглавието на статиите или друго съдържание, за което ще използваме поведението.
След това добавете следния код към класа на генерираното поведение:
Нека го разбием. Поведението има едно свойство, което нарекохме $title. Можете да го наричате както искате, не е толкова важно. По-важно тук е стойността по подразбиране. Тази стойност съответства на атрибут на модела. Тъй като искаме да работим с имена на материали, избрах заглавие като стойност по подразбиране, защото съм свикнал да го използвам. Съответно, ако полето на модела се извиква по този начин, тогава потребителят може да не посочи името на атрибута, когато конфигурира поведението. Ако името е различно, тогава потребителят ще го замени, когато прикачва поведение.
Следва метод събития. Трябва да отменим този метод, ако поведението ни трябва да реагира на някои събития. В примера по-горе нашето поведение ще отговори на събитието beforeValidate. За това събитие присвояваме метода changeTitle, който описваме по-долу. Методът приема обект като параметър.събития. В метода ще го отпечатаме на екрана и ще завършим по-нататъшното изпълнение на програмата. Нека да го разгледаме. За да направите това, нека се опитаме да добавим още една новина. Но преди това нека прикрепим поведението към модела. Вече използваме поведението на TimestampBehavior там, просто добавете нашето собствено:

Съвременни тенденции и подходи в уеб разработката
Научете алгоритъма за бърз растеж от нулата в изграждането на уебсайт