у меня есть поведение для моих моделей, поведение имеют beforeFind, BeforeSave, в методах я переопределить user_id, что-то вроде:Yii Поведение и сценарий
...
public functio beforeSave() {
$this->owner->user_id = Yii::app()->user->id
}
У меня есть модель пользователя, как я могу отключить поведение для регистрации новый пользователь? Сохранение кода:
$user = new User();
$user->id = 1332;
$user->field1 = 'data';
$user->save();
но сохранить у меня есть нуль в $ user-> идентификатор (потому что поведение работы). i попытался
$user->disableBehaviors();
$user->detachBehavior();
Безрезультатно.
Возможно, это не так? Я создаю поведение для идентификации пользователей в системе (найдите только пользователя, сохраните только с идентификатором пользователя ...), но если у меня появился новый пользователь с полными предигентами, я должен снова отключить поведение?
Посмотрел, не универсальный, что, если у меня будет новая роль - администратор, я должен написать новую проверку, если это администратор. – Actimele
Я сохраняю поля проверки в каждой модели, которые записывают имя пользователя и временную метку, а также изменение пользователя и метки времени при создании или изменении записи. Вместо написания кода для заполнения этих полей аудита в каждой модели я написал обработчик событий и привязал его к событию onBeforeSave в каждой модели в функции init(). Чтобы определить, была ли запись создана, я использовал $ model-> isNewRecord. Модель исходит из события, которое передается обработчику. – jmarkmurphy