我的 Yii2 模型的 AfterSave 函数中有这个奇怪的错误
当我这样做时
public function afterSave($insert, $changedAttributes) {
parent::afterSave($insert, $changedAttributes);
if(!$insert):
print_r($changedAttributes);exit;
$this->prepareMail(self::MAIL_APPROVE);
;
}
我明白了
Array (
[reason_for_travel] => 1 [project_id] => [billable] => 1
[advance_required] => 0 [status] => 2 ) // See it contains 'status'
但是当我这样做时
public function afterSave($insert, $changedAttributes) {
parent::afterSave($insert, $changedAttributes);
if(!$insert):
$status = $changedAttributes['status']; // this line shows error
if($status == Self::STATUS_CONFIRMED):
$this->prepareMail(self::MAIL_APPROVE);
;
;
}
$status = $changedAttributes['status'];此行显示错误
错误是“未定义索引:状态”
我没有看到什么?
最佳答案
使用这行:
if(!$insert):
$status = isset($changedAttributes['status']) ? $changedAttributes['status'] : 0); // this line shows error
if($status == Self::STATUS_CONFIRMED):
$this->prepareMail(self::MAIL_APPROVE);
;
;
$changedAttributes 包含已修改字段的旧值,但仅包含已修改字段,如果存在“isset”跳过错误,则有效。
关于Yii2 保存后。使用changedAttributes显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35740190/