Php 删除操作不';我不能在Yii中使用相关模型

Php 删除操作不';我不能在Yii中使用相关模型,php,yii,relationship,Php,Yii,Relationship,我有两个模型(照片、相册)中的这些关系。在项目模型中: 'photo' => array(self::HAS_MANY, 'photo', 'album_id') 照片模型: 'album' => array(self::BELONGS_TO, 'Album', 'album_id'), 在albumController的操作中删除: $this->loadModel($id)->photo->delete(); 但是什么都没有发生,相册也没有被删除 有什么

我有两个模型(照片、相册)中的这些关系。在项目模型中:

'photo' => array(self::HAS_MANY, 'photo', 'album_id')
照片模型:

'album' => array(self::BELONGS_TO, 'Album', 'album_id'),
在albumController的操作中删除:

 $this->loadModel($id)->photo->delete();
但是什么都没有发生,相册也没有被删除


有什么问题吗?

相册中有许多照片在您的关系中,您应该循环删除它们

$photos = $this->loadModel($id)->photo;
foreach($photos as $photo)
    $photo->delete();
或者,您可以在一个查询中删除它们:

Photo::model()->deleteAllByAttributes(array('album_id'=>$id))

由于您具有
多个
关系,因此必须删除多个对象,因此要使用一个调用来实现,您可以通过另一个模型来实现,因此在
相册
模型中使用以下方法:

public function deletePhotos() {    
    return Photo:::model()->deleteAllByAttributes(array('album_id' =>$this->id));
}

最好的做法是使用数据库。首先,它的工作速度更快,其次,您不需要编写很多php代码