gpt4 book ai didi

Yii 在其他模型的 beforeSave() 中调用 beforeSave()

转载 作者:行者123 更新时间:2023-12-01 10:59:46 28 4
gpt4 key购买 nike

我试图在模型的 beforeSave() 方法中保存另一个模型的记录。我希望 save() 方法在 Save() 之前调用对方的模型,但它没有。这是一个错误还是我只是错过了什么?这是一些代码。

运营模式

public function beforeSave(){
if(parent::beforeSave()){

if($this->isNewRecord){
$this->creation_date=$this->modification_date=time();
$cur=Currencies::model()->find('LOWER(short)=?',array('usd'));
if($cur->id!=$this->currency_id){
$conv_cours=Currencies::model()->findByPk($this->currency_id);
$this->ammount_usd=round(($this->ammount*$conv_cours->buy)/$cur->sell,4);
}else{
$this->ammount_usd=$this->ammount;
}

}else{
$this->modification_date=time();
}

$opType=OperationType::model()->findByPk($this->operation_type);

$log=new ActionLogs;
$log->comment=Yii::app()->user->name.' добавил '.$opType->name;
/*$log->logtime=time();
$log->user_id=Yii::app()->user->id;*/
$v=1;
$log->save ();

return true;

}else{
return false;

}

}

还有另一个模型 beforeSave()

    public function beforeSave(){
if(parent::beforeSave()){
if($this->isNewRecord){
$this->logtime=time();
$this->user_id=Yii::app()->user->id;
}
return true;
}else{
return false;
}

}谢谢。

最佳答案

我能想到的 Yii 在您尝试保存 activerecord 时不调用 beforeSave 的唯一原因是它的验证失败。要么尝试在调用保存后转储 $object->errors,要么尝试使用 $object->save(FALSE) 保存它以跳过验证。这样我们就可以消除这个原因。

关于Yii 在其他模型的 beforeSave() 中调用 beforeSave(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12250938/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com