Kohana 3 ORM: несколько соединений - PullRequest
1 голос
/ 03 февраля 2012

У меня проблема с запросом Kohana ORM / Mysql. Я надеюсь, что вы можете помочь.

Для начала вот схема таблиц:

Diagram

Вот мои определения ORM:

MEMBERS имеет много ТЕМ через MEMBERS_TOPICS ARTICLES имеет много тем, хотя ARTICLES_TOPICS В ТЕМЕ есть много ЧЛЕНОВ, хотя MEMBERS_TOPICS Темы имеет много статей, хотя ARTICLES_TOPICS

Думайте об этом как о списке рассылки, в котором есть участники, которые выбрали темы статей, в которых темы также назначены определенным темам.

Я не мог понять, как сделать один запрос, чтобы я мог возвращать объединенные результаты и отправлять электронное письмо отдельным участникам со статьями, которые они выбирали только из выбранных тем.

Я надеюсь получить мудрость с помощью mysql / kohana ninjas. : D

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

В ORM есть метод with(), который присоединит ваши таблицы, если вы правильно настроили отношения в своих моделях.Ниже приведен небольшой пример:

Модель:

public function find_all_orders()
{
   return $this->with('customer')->with('product')->find_all();
}

Вид:

foreach ($orders as $order)
{
   echo $order->product->name . ' ' . $order->customer->name;
}

Отношения:

  • заказ принадлежит продукту, у продукта много заказов
  • заказ принадлежит клиенту, у клиента много заказов
0 голосов
/ 03 февраля 2012

ORM имеет метод join (): http://kohanaframework.org/3.2/guide/api/ORM#join

Возможно, есть более элегантный способ KO3 делать то, что вы хотите, но я не совсем знаком с KO3 ORM, возможно, кто-то другой может предложитьлучший способ.

[править] Некоторое дальнейшее чтение:

...