Kohana 3.1 ORM: присоединяется к has_many - PullRequest
0 голосов
/ 10 июня 2011

У меня есть пользователи, сообщения и комментарии.

идентификатор пользователя user_id

идентификатор сообщения идентификатор user_id

комментарии id идентификатор сообщения_id

Я могу получить данные пользователейсообщения с использованием с ().

$model = ORM::factory('message');
$messages = $model
            ->with('user')
            ->find_all();

с ('комментарий') не работает.Я думаю, потому что он создан для отношений один-к-одному, в то время как у меня есть сообщение has_many comment.

Как мне получить данные комментариев в $ messages?Например: ['message_id'] ['comment_id'] [DATA]?

1 Ответ

1 голос
/ 10 июня 2011

0.Определите отношения:

Пользователь has_many Сообщения Сообщение has_many Комментарии Сообщение принадлежит_Комментарию пользователя принадлежит_В Сообщение

class Model_User extends ORM {
    protected $_has_many = array('messages' => array());
}

class Model_Message extends ORM {
    protected $_belongs_to = array('user' => array());
    protected $_has_many = array('comments' => array());
}

class Model_Comment extends ORM {
    protected $_belongs_to = array('message' => array());
}

1.Получить сообщения пользователя:

$messages = ORM::factory('user', $user_id)->messages->find_all();
foreach($messages as $message) {...}

2.Получить сообщение владельца:

$user = ORM::factory('message', $message_id)->user; // without find_all()!

3.Получить комментарий к сообщениям:

$comments = ORM::factory('message', $message_id)->comments->find_all();
foreach($comments as $comment) {...}
...