Kohana 2.3.4 ORM数据透视表查询

时间:2010-04-09 18:52:25

标签: php orm pivot-table kohana

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

Kohana会在您第一次尝试访问它们时请求您的产品类别。

答案 1 :(得分: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();