Я пытаюсь запросить сводную таблицу с ORM Коханы, и мне интересно, есть ли встроенная функция, которую я пропускаю. В настоящее время у меня есть только две модели для таблиц «категории» и «продукты». Существует сводная таблица «categories_products», но мне не нужна модель для нее при вставке данных с этим:
$product = ORM::factory('product'); $product->add(ORM::factory('category', $addCat));
Однако я не могу понять, как запросить его, не создавая для него модель. Функция «join_table» возвращает только имя сводной таблицы (которая, как я думал, сначала выбрала таблицу). Если вы можете сохранить данные в сводной таблице без модели, мне кажется, что вы должны иметь возможность получать данные аналогичным образом. Есть идеи?
Вы можете получить доступ к своим категориям без какого-либо явного запроса:
$product_object = ORM::factory('product', $your_product_id); foreach ($product->categores as category): //access category ORM object... endforeach;
Kohana будет запрашивать категории для вашего продукта, когда вы сначала попытаетесь получить к ним доступ, я думаю.
Вышесказанное фактически не работало так, как было предсказано для меня. Я продолжал получать сообщение об ошибке, что свойство не было в модели. Однако этот скрипт работает.
$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();