Помогите с Kohana ORM? - PullRequest
       12

Помогите с Kohana ORM?

2 голосов
/ 29 января 2010

Используя ORM, я хочу иметь возможность загружать все опубликованные статьи, в которых пользователь оставил комментарий.

таблица комментариев

comment_id
user_id
article_id
etc....

Используя ORM, я могу получить доступ ко всем статьям, опубликованным пользователем, но как я могу получить доступ ко всем статьям, в которых пользователь прокомментировал?

Спасибо

Редактировать:

Другая проблема состоит в том, что, если пользователь дважды прокомментирует одну и ту же статью, эта статья будет отображаться дважды ... как изменить группу по предложению одного объекта из другого?

Кроме того, как я могу изменить порядок одного объекта от другого?

Я использую 2.3.4.

Ответы [ 2 ]

5 голосов
/ 01 февраля 2010

В псевдокоде попробуйте это ...

  • В модели изделия есть $has_many = array('comments');

  • В модели комментария, есть $belongs_to = array('article');

  • И в коде, где вы запрашиваете:

.

$comments = ORM::factory('comment')
                ->where('user_id', $user_id);
                ->find_all();

foreach($comments as $comment)
{
    $article_id = $comment->article->id;
}

Извините, это не решит повторяющуюся запись статьи, когда $user_id комментирует более одного раза в статье ... Возможно, вам понадобится немного больше изучить эту тему.

0 голосов
/ 29 января 2010

ORM в кохане в основном для простых задач. Хотя я уверен, что это можно сделать в ORM, я использую обычные запросы для более сложных задач:

$this->db = Database::instance();
$this->db->query("
    select
        user_id
        article_id
        id as comment_id
    from
        comments
    left join
        articles
    on
        articles.id = comments.article_id
    where
        user_id = $user_id
    group by
        comments.article_id
");

что-то подобное должно делать эту работу, если я не допустил ошибок

...