Back to questions
Junior — Middle
90
Какие методы вызываются автоматически при определённых событиях в Yii2?
Answer from AI
sobes.tech AI
В Yii2 есть несколько методов, которые вызываются автоматически при определённых событиях жизненного цикла модели или компонента. Основные из них:
init()— вызывается после создания объекта, используется для инициализации.beforeValidate()иafterValidate()— вызываются до и после валидации модели.beforeSave($insert)иafterSave($insert, $changedAttributes)— вызываются до и после сохранения модели в базу данных. Параметр$insertуказывает, создаётся ли новая запись.beforeDelete()иafterDelete()— вызываются до и после удаления модели.afterFind()— вызывается после загрузки модели из базы данных.
Кроме того, Yii2 использует систему событий, где можно подписываться на события и выполнять код при их возникновении.
Пример переопределения метода:
class Post extends \yii\db\ActiveRecord
{
public function beforeSave($insert)
{
if (!parent::beforeSave($insert)) {
return false;
}
// дополнительная логика перед сохранением
return true;
}
}
Таким образом, эти методы позволяют внедрять логику на ключевых этапах работы с моделями.