我正在尝试使用Kohana的ORM查询数据透视表,我想知道是否存在我缺少的内置函数。目前我只有2个模型设置表“类别”和“产品”。有一个数据透视表“categories_products”,但在插入数据时我不需要它的模型:
$product = ORM::factory('product');
$product->add(ORM::factory('category', $addCat));
但是,我无法弄清楚如何在不创建模型的情况下查询它。 “join_table”函数只返回数据透视表的名称(我认为最初选择了表格)。如果您可以在没有模型的情况下将数据保存到数据透视表,在我看来您应该能够以类似的方式检索数据。有什么想法吗?
答案 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();