实际上,如果我在控制器的动作中更新我的模型(在这种情况下是actionTest),它会更新。这是我的代码:
public function actionTest()
{
$model = ProviderOrder::find()->where(['is_used' => 0,'type' => Transaction::COD])->orderBy(['id' => SORT_ASC])->one();//const COD = 0
$model->is_used = 1;
$model->save();
}
但在我的情况下,我将afterSave函数定义为我的预订模型。我在其中调用了getTrackNumber函数,该函数在其正文中具有Transaction Class。
class Booking extends ActiveRecord
{
public function afterSave($insert, $changedAttributes)
{
$this->getTrackNumber($this->id);
parent::afterSave($insert, $changedAttributes);
}
public static function getTrackNumber($bookingId){
$transaction = new Transaction();
....
}
}
在交易类内部,有与actionTest相同的代码。
但问题是$ model-> save()返回true但是当我浏览phpmyadmin时没有任何改变is_used仍为0.
但在第一种情况下,即在行动中,一切都很好。请帮帮我!