我有两个型号Category和Item。类别可以有很多项目,项目可以在很多类别中,因此它们之间的关系是HABTM。 我的问题是,即使项目在其中,也可以删除类别。 我在数据库表categories_items中有一个外键,即resTRICTS删除,但它没有帮助。 如果项目在其中,我应该怎么做才能防止删除类别?
答案 0 :(得分:1)
您需要覆盖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);