1
我有两个模型分类和项目。类别可以有很多项目,项目可以有很多种类,因此它们之间的关系是HABTM。 我的问题是,即使项目在里面,也可以删除一个类别。 我有一个外键在数据库表categories_items RESTRICTS删除,但它没有帮助。 我应该怎么做才能防止类别被删除?HABTM删除约束条件
我有两个模型分类和项目。类别可以有很多项目,项目可以有很多种类,因此它们之间的关系是HABTM。 我的问题是,即使项目在里面,也可以删除一个类别。 我有一个外键在数据库表categories_items RESTRICTS删除,但它没有帮助。 我应该怎么做才能防止类别被删除?HABTM删除约束条件
您需要覆盖您的CategoriesController中的实际“删除”方法,以验证删除之前类别中是否没有任何项目。
喜欢的东西...
$c = $this->Category->findById($id);
$rels = $this->CategoriesItem->find('count', array('conditions' => array('CategoriesItem.category_id' => $id)));
if(count($rels) > 0) $this->Session->setFlash("NO WAY JOSE");
else $this->Category->delete($id);
我认为这更多的东西蛋糕上下的(如1号线在模型文件或东西...)。我想我会在这种情况下使用模型中的beforeDelete回调函数。 Tnx – SimonM
在模型文件中有一个选项叫'依赖',您可以指定所有属于相关模型在hasMany对象被删除时将被删除,但对于HABTM没有任何(据我所知) – tigertrussell