当我删除'type'时我设置了isActive = 0;
每种"类型"都有很多"因果关系"
因此,当禁用某种类型时我想禁用每一个因果关系
在类型控制器中我正在尝试这个
$model = $this->loadModel($id);
$model->isActive = 0;
foreach ($model->causalsObj as $key => $causal ) {
$causal = CausalController::delete($causal->id);
}
$model->save();
Run Code Online (Sandbox Code Playgroud)
这不起作用(在ajax调用期间PHP错误)
这应该进入模型,而不是控制器,我会使用afterSave.所以在CasualType中:
public function afterSave(){
if(!$this->isActive){
Casual::model()->deleteAll('type_id = '.$this->id);
}
return parent::afterSave();
}
Run Code Online (Sandbox Code Playgroud)
如果您实际上并不意味着"删除"但是停用,您仍然可以使用CActiveRecord :: updateAll在一个查询中执行此操作:
public function afterSave(){
if(!$this->isActive){
Casual::model()->updateAll(array('isActive' => 0), 'type_id = '.$this->id);
}
return parent::afterSave();
}
Run Code Online (Sandbox Code Playgroud)
在另一个控制器中实例化控制器没有意义,控制器可以处理用户请求,而不是保存业务逻辑