【问题标题】:HABTM delete constraintHABTM 删除约束
【发布时间】:2015-08-23 05:54:36
【问题描述】:

我有两个模型类别和项目。类别可以有许多项目,项目可以在许多类别中,因此它们之间的关系是 HABTM。 我的问题是即使项目在其中也可以删除一个类别。 我在 RESTRICTS 删除的数据库表 categories_items 中有一个外键,但它没有帮助。 如果有项目,我应该怎么做才能防止类别被删除?

【问题讨论】:

    标签: cakephp constraints has-and-belongs-to-many


    【解决方案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);
    

    【讨论】:

    • 我认为它更像蛋糕(比如模型文件中的 1 行或其他东西......)。在这种情况下,我想我只会在模型中使用 beforeDelete 回调。 Tnx 反正
    • 在您的模型文件中有一个名为“dependent”的选项,您可以在其中指定所有相关模型将在其 hasMany 对应模型被删除时被删除,但没有(据我所知) HABTM
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    相关资源
    最近更新 更多