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

Posted

技术标签:

【中文标题】Kohana 2.3.4 ORM - 删除数据透视表关系【英文标题】:Kohana 2.3.4 ORM - delete pivot table relationships 【发布时间】:2010-10-05 16:35:20 【问题描述】:

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

这是我添加它们的方法

           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】:

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

【讨论】:

以上是关于Kohana 2.3.4 ORM - 删除数据透视表关系的主要内容,如果未能解决你的问题,请参考以下文章

Kohana ORM - 我该怎么做?

如何使用 Kohana ORM 选择以及在哪里 - 如果 - 在?

最喜欢的 Kohana 提示和功能? [关闭]

Kohana 2 ORM 自定义主键生成错误

Kohana 3.1 ORM 数据库查询

Kohana MVC 框架 ORM 模式强制更新数据库