Моя функция поведения в моей модели заключается в следующемyii2 поведения ActiveRecord :: EVENT_BEFORE_INSERT не работает
public function behaviors()
{
return [
'timestamp' => [
'class' => 'yii\behaviors\TimestampBehavior',
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['log_in_time' ],
ActiveRecord::EVENT_BEFORE_UPDATE => ['log_in_time'],
],
'value' => new Expression('NOW()'),
],
];
}
/**
* validation rules
*/
public function rules()
{
return [
['username','filter', 'filter' => 'trim'],
['username','required'],
//['username','unique'],
['username','string', 'min' => 2, 'max' => 255],
['password','required'],
];
}
/* Your model attribute labels */
public function attributeLabels()
{
return [
/* Your other attribute labels */
];
}
public function scenarios()
{
$scenarios = parent::scenarios();
$scenarios['login'] = ['username','log_in_time'];//Scenario Values Only Accepted
return $scenarios;
}
Но это не обновление log_in_time
колонки. log_in_time
является DATETIME
. Вводимое значение - 0000-00-00 00:00:00
. В чем проблема?
Просто любопытен, почему бы вам обновить время входа в системе, когда вы выполняете обновление? Приложение по умолчанию показывает вам, как его обновлять при входе в систему. –
У меня нет функции beforeSave() – user7282
На самом деле я ошибаюсь, вы должны иметь возможность комбинировать 2 просто отлично, как и вы. Я не знаю, почему это происходит. –