我正在尝试删除具有多对多关系的相关数据
我的复杂模型:
/**
* @return \yii\db\ActiveQuery
*/
public function getComplexDocument()
{
return $this->hasMany(ComplexDocument::className(), ['complex_id' => 'id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getDocuments()
{
return $this->hasMany(Documents::className(), ['id' => 'document_id'])
->via('complexDocument');
}
在beforeDelete
我执行以下操作:
public function beforeDelete()
{
foreach ($this->documents as $document){
var_dump($document);
}
return parent::beforeDelete();
}
删除不会发生,我检查了所有hasMany连接返回NULL。
在调试中,我看到following
答案 0 :(得分:0)
我是这样做的:
public function delete()
{
foreach ($this->documents as $document){
$document->delete();
}
return parent::delete(); // TODO: Change the autogenerated stub
}
一切正常,所有相关文件都被删除了,但对我来说似乎很奇怪。实际上,这应该在beforeDelete()中,但为什么不返回链接,因此不会被删除,所以它应该是,还是缺少框架?