Я пытаюсь использовать ORM для доступа к данным, хранящимся в трех таблицах mysql 'users', 'items' и сводной таблице для отношения многие-многие: 'user_item'
Я следовал указаниям Kohana 3.0.x ORM: чтение дополнительных столбцов в сводных таблицах
и попробовал
$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:
"Неизвестный столбец 'user_item.id' в
'Порядок заказа' [SELECT user_item
. *
ОТ user_item
ГДЕ user_id
= '1'
AND item_id
= '' ЗАКАЗАТЬ
user_item
. id
ASC LIMIT 1] "
Что явно ошибочно, потому что Кохана пытается упорядочить элементы по столбцу, который не существует: user_item.id. Этот идентификатор не существует, потому что первичными ключами этой сводной таблицы являются внешние ключи двух других таблиц, 'users' и 'items'.
Пытаться использовать:
$user_item = ORM::factory('user_item', array('user_id' => $user, 'item_id' => $user->items))
->order_by('item_id', 'ASC');
Не имеет значения, поскольку кажется, что order_by()
или любые sql-запросы игнорируются, если задан второй аргумент фабрики.
Другая очевидная ошибка в этом запросе заключается в том, что item_id = '', когда он должен содержать все элементы.
Итак, мой вопрос , как я могу получить доступ к данным, хранящимся в сводной таблице , и на самом деле , как я могу получить доступ ко всем элементам, хранящимся у определенного пользователя как У меня даже были проблемы с этим?
Спасибо