php 数据透视表,php – Kohana 3 ORM:如何从数据透视表中获取数据?以及所有其他表格...

我正在尝试使用ORM来访问存储的数据,在三个

mysql表的“用户”,“项目”和多个关系的数据透视表中:’user_item’

并尝试过

$user = ORM::factory('user',1);

$user->items->find_all();

$user_item = ORM::factory('user_item', array('user_id' => $user, 'item_id' => $user->items));

if ($user_item->loaded()) {

foreach ($user_item as $pivot) {

print_r($pivot);

}

}

但是我得到了SQL错误:

“Unknown column ‘user_item.id’ in

‘order clause’ [ SELECT user_item.*

FROM user_item WHERE user_id = ‘1’

AND item_id = ” ORDER BY

user_item.id ASC LIMIT 1 ]”

这显然是错误的,因为Kohana试图通过不存在的列来排序元素:user_item.id.此ID不存在,因为此数据透视表的主键是其他两个表的“外键”,“用户”和“项目”.

试图使用:

$user_item = ORM::factory('user_item', array('user_id' => $user, 'item_id' => $user->items))

->order_by('item_id', 'ASC');

没有区别,因为如果给出了工厂的第二个参数,似乎会忽略order_by()或任何sql查询.

该查询的另一个明显错误是item_id =”,它应该包含所有元素.

所以我的问题是如何才能访问存储在数据透视表中的数据,实际上我如何才能访问特定用户持有的所有项目,因为我甚至遇到了问题?

谢谢

最佳答案 默认情况下,所有Kohana的ORM模型都希望表的主键为“id”.您需要在模型中将$_primary_key设置为其他内容.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值