0

我有一个用户、消息和评论。

用户 ID user_id

消息 id user_id

评论 id message_id

我可以使用 with() 获取消息的用户数据。

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

with('comment') 不起作用。我猜是因为它是为一对一关系创建的,而我有消息 has_many 评论。

如何将评论数据放入 $messages?像下面这样:['message_id']['comment_id'][DATA]?

4

1 回答 1

1

0. 定义关系:

用户 has_many 消息 消息 has_many 评论 消息 belongs_to 用户 评论 belongs_to 消息

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) {...}
于 2011-06-10T18:21:30.990 回答