1

我正在尝试使用 Kohana 的 ORM 查询数据透视表,我想知道是否缺少内置函数。目前我只为“类别”和“产品”表设置了 2 个模型。有一个数据透视表“categories_products”,但在插入数据时我不需要模型:

$product = ORM::factory('product');
$product->add(ORM::factory('category', $addCat));

但是,如果不为其创建模型,我无法弄清楚如何查询它。“join_table”函数只返回数据透视表的名称(我一开始以为选择了该表)。如果您可以在没有模型的情况下将数据保存到数据透视表中,那么在我看来,您应该能够以类似的方式检索数据。有任何想法吗?

4

2 回答 2

0

您可以在没有任何明确请求的情况下访问您的类别,如下所示:

$product_object = ORM::factory('product', $your_product_id);

foreach ($product->categores as category):
    //access category ORM object...
endforeach;

我认为,当您第一次尝试访问它们时,Kohana 会请求您产品的类别。

于 2010-04-10T10:17:23.537 回答
0

以上实际上并没有像我预期的那样工作。我不断收到模型中不存在该属性的错误。这个脚本一直在工作。

                $pivot = ORM::factory('category')->join_table('products'); //pivot table name between products and categories
            $productsTotal = ORM::factory('product')->join($pivot, $pivot . '.product_id', 'id')->where('category_id', $id)->find_all();
于 2010-04-26T16:58:30.447 回答