Есть поведение, которое подключаю в модели:
Код: Выделить всё
...
public function behaviors()
{
return [
[
'class'=>LogBehavior::classname()
]
];
}
...
public function beforeSave($insert)
{
echo 'Сюда тоже не поапдаю(';
die;
if($insert) {
$this->user_id = Yii::$app->user->id;
}
return parent::beforeSave($insert); // TODO: Change the autogenerated stub
}
Код: Выделить всё
...
public function attach($owner)
{
parent::attach($owner);
$owner->on(ActiveRecord::EVENT_BEFORE_INSERT,[$this,'onBeforeSave']);
$owner->on(ActiveRecord::EVENT_BEFORE_UPDATE,[$this,'onBeforeSave']);
$owner->on(ActiveRecord::EVENT_AFTER_INSERT,[$this,'onAfterSave']);
$owner->on(ActiveRecord::EVENT_AFTER_UPDATE,[$this,'onAfterSave']);
$owner->on(ActiveRecord::EVENT_AFTER_DELETE,[$this,'onAfterDelete']);
...
}
public function onBeforeSave()
{
echo 'Сюда не попадаю, При сохранении модели эта запись не отображается';
die;
}
...
Код: Выделить всё
$model = new Results();
$model->option_id = $this->option_id;
$time = time();
$model->date_create = date('Y-m-d H:i:s',$time);
$model->date_update = date('Y-m-d H:i:s',$time);
$model->date_update_stamp = $time;
$model->date_create_stamp = $time;
$model->author_id = Yii::$app->user->id;
$model->exist = 1;
$model->sort = 1;
if(!$model->save()) {
echo $model->printErrors();
} else {
echo 'ok';
}
die();
Поучается, что если я явно не указываю доп. аттрибуты из листинга выше, то $model->printErrors( ругается на то, что аттрибуты не являются целыми числами. Хотя данные аттрибуты не обязательны к заполнению.
В чем может быть проблема? В attach?
Тут суть такая. Производится валидация полей, которых нет в форме.
Данные поля не находятся в секции required.
Если взять как по умолчанию rules в модели, то поля без required валидируются только в случае, если они присутствуют в форме.