Kohana ORM ile Yardım?

2 Cevap php

ORM kullanarak, bir kullanıcı bir yorum yaptı ki, yayınlanan tüm makaleleri yüklemek mümkün olmak istiyorum.

comments tablo

comment_id
user_id
article_id
etc....

ORM kullanarak, bir kullanıcı tarafından gönderilen tüm makaleleri erişebilirsiniz, ama nasıl kullanıcı yorumladı olduğu tüm makaleleri erişmek mümkün olacaktır?

Teşekkürler

Edit:

Bir başka sorun, bir kullanıcı iki kez aynı makalede comments eğer, bu yazı nasıl başka içinde bir nesne fıkra ile grubunu değiştiririm .. iki gösterecek, nedir?

Ayrıca, nasıl diğerinden bir nesnenin sırasını nasıl değiştirebilirim?

2.3.4 kullanarak im.

2 Cevap

Kohana içinde ORM çoğunlukla basit görevler için ment. Eminim olsa da ben doğrusu biraz daha karmaşık görevler için normal sorgular kullanmak ORM bunu yapmak mümkündür:

$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
");

Ben herhangi bir hata vermedi eğer böyle bir şey iş yapmalıyım

Pseudocode, bu deneyin ...

  • Madde Model, var $has_many = array('comments');

  • Yorum Modeli'nde var $belongs_to = array('article');

  • Ve kodu sorgulamak burada:

.

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

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

$user_id kez bir makalede daha fazla yorum Maalesef bu yinelenen yazı girişi çözmez ... Bu üstüne biraz daha fazla araştırma yapmak gerekebilir.