Зачастую название метода события делится на две части. Первая часть - время выполнения события (до или после), вторая часть - имя метода до или после которого будет выполнено событие.
События модели
- beforeValidate() - событие будет выполнено перед валидацией
- afterValidate() - событие будет выполнено после валидации
- beforeSave() - событие будет выполнено перед сохранением данных
- afterSave() - событие будет выполнено после сохранения данных
- beforeDelete() - событие будет выполнено перед удалением данных
- afterDelete() - событие будет выполнено после удаления данных
- afterConstruct() - событие будет выполнено после выполнения конструктора
- afterFind() - событие будет выполнено перед поиском данных
- beforeFind() - событие будет выполнено после поиска данных
Пример:
<?php class Posts extends CActiveRecord { //Ваш код ... /** * Действие перед проверкой данных * * @return boolean */ protected function beforeValidate() { //Если прошла стандартная проверка данных if (parent::beforeValidate()) { //Если новая строка if ($this->isNewRecord) { $this->createDate = time(); } return true; } else { retrun false; } } //Ваш код ... } ?>
Еще один пример:
<?php class Posts extends CActiveRecord { //Ваш код ... /** * Действие после поиска данных * * @return boolean */ protected function afterFind() { //Если прошла стандартная проверка данных $this->createDate = data('d.m.Y', $this->createDate); return parent::afterFind(); } //Ваш код ... } ?>
События контроллера
- beforeAction() - событие будет выполнено перед каким-либо действием контрллера
- afterAction() - событие будет выполнено после каких-либо действий контрллера
- beforeRender() - событие будет выполнено перед отрисовкой вида
- afterRender() - событие будет выполнено после отрисовки вида
Пример:
<?php class PostsController extends Controller { //Ваш код ... /** * Действие после выполнения какого-либо экшена текущего контроллера * * @return boolean */ protected function afterAction() { //логирование Loger::saveLog($this->action->id, $this->id); return parent::afterAction(); } //Ваш код ... } ?>
Класс CWebUser
- afterLogin() - событие будет выполнено после авторизации
- beforeLogin() - событие будет выполнено после авторизации
- afterLogout() - событие будет выполнено после выхода
Пример:
<?php class MyWebUser extends CWebUser{ public function afterLogin($fromCookie) { parent::afterLogin($fromCookie); //Ваш код ... } } ?>
Комментарии
Комментарии отсутствуют, Вы можете быть первым