Kohana 2.3.4 ORM - 删除数据透视表关系

时间:2010-10-05 16:35:20

标签: php mysql orm kohana

我正在尝试使用ORM的remove方法从数据透视表中删除关系。这适用于更新与产品关联的类别的编辑方法。我可以成功添加多个关系,但我需要在再次添加之前删除这些关系。

以下是我添加它们的方式

           foreach ($categories as $addCat)
              {
                $product->add(ORM::factory('category', $addCat));
              }

$ categories是表单中的项目数组,$ product是模型。这很完美。

我认为我需要做这样的事情来删除它们,但它不起作用

$product->remove(ORM::factory('category', $product->id));

$ product-> id是产品的ID。我在添加脚本之前调用此脚本。我的目标是删除包含“$ product-> id”值的所有关系,然后运行我的循环再次添加它们。如果我为数据透视表创建了一个模型,我可以轻松地做到这一点,但这与使用数据透视表的方式相悖。

1 个答案:

答案 0 :(得分:2)

你有正确的想法。当您致电ORM :: factory('category',$ product-> id)时,您正在尝试查找与您的产品具有相同ID的类别。相反,您需要指定要删除的类别的ID。

假设您有一系列要删除的类别ID:

$categories = array('2', '4', '6');
foreach ($categories as $cat_id)
{
    $product->remove(ORM::factory('category', $cat_id));
}