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

Php Kohana 2.3.4 ORM-删除数据透视表关系,php,mysql,orm,kohana,Php,Mysql,Orm,Kohana,我正在尝试使用ORM的remove方法从数据透视表中删除关系。这是用于更新与产品关联的类别的编辑方法。我可以成功添加多个关系,但我需要在再次添加之前删除这些关系 下面是我如何添加它们的 foreach ($categories as $addCat) { $product->add(ORM::factory('category', $addCat)); } $categories

我正在尝试使用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”中的值的关系,然后运行我的循环再次添加它们。如果我为pivot表创建了一个模型,我可以很容易地做到这一点,但这与使用pivot表的目的背道而驰。

你的想法是对的。当您调用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));
}