Литий с левым соединением

Я новичок в Lithium. Мне нужно выполнить левое соединение. Это query, которое мне нужно.

SELECT `title`,`body`,`user_id`,`users`.`username`,`users`.`id` 
FROM `posts` LEFT JOIN `users` 
        ON `user_id` = `users`.`id`

Я пытаюсь сделать что-то вроде этого.

  $conditions['user_id'] = $this->data['user_id'];
                $posts = Post::all(array(
                  'conditions' => $conditions,
                  'fields' => array('title','body','username'),
                  'join' => array('source' => 'posts', 
                  'type' => 'LEFT',
                  'constraint' => array('post.user_id' => 'Users.id')), 
                     ))->data();

person Cosmin    schedule 29.08.2012    source источник


Ответы (1)


Существует отличное руководство (на примере блога) здесь, в котором объясняется использование < strong>Отношения в Lithium, Отношения упрощают использование реляционных данных и JOINS.

Вы также можете ознакомиться с официальной документацией, а также с этой ответ: Как выполнять соединения с литиевыми моделями?

После того, как вы установили отношения в своих моделях, вы можете сделать JOINS так же просто, как:

$posts = Posts::find('all', array(
    'with' => 'Users'
));

В Lithium есть несколько разных типов отношений, которые примерно соответствуют разным типам JOINS ...

  • hasOne: текущий объект связан с одним объектом другого типа.
  • hasMany: текущий объект связан со многими объектами другого типа.
  • принадлежит: текущий объект принадлежит другому объекту и помечен как связанный с ним.
person Justin Jenkins    schedule 29.08.2012