如何在yii中存储HAS_MANY RELATION数据库查询的结果?

时间:2013-09-21 04:12:55

标签: php yii

请帮助....我是新手

我有2个表 PAGE 评论。

Page 表有列

$id
$user_id 
$content

评论表中有列

$id
$user_id
$page_id
$date_entered

$comment      **The comment column consist of an array of comments as one user can have many comments** 

在Page模型中,relation()中的关系定义为

return array(
    'comments' => array(self::HAS_MANY, 'Comment', 'page_id')
)

现在在PageControllor.php中,我已经在actionView()

中定义了这个查询
$page = Page::model()->with('user','comments')->findByPk($id);

现在我的问题是

如何在 $ result 中获取此查询的结果,以便我可以将其作为

传递给视图页面
$this->render('view',array('model'=>$this->loadModel($id),'result'=>$result))

2 个答案:

答案 0 :(得分:1)

您尚未定义要为结果分配的“此查询”。

但是,如果您只想获得与页面相关的所有评论的列表,那么您需要做的就是:

foreach($page->comments as $comment){
    ....
}

致电$this->render时,请执行以下操作:

$this->render('view', array('page'=>$page);

当您指定$page时,实际上并不需要with方法 - 只有当您要查询这些字段时才会这样做。所以这就足够了:

$page = Page::model()->findByPk($id)

答案 1 :(得分:1)

要准确回答您的问题,您所要做的就是,

$this->render('view',array(
    'model'=>$this->loadModel($id),
    'result'=>$page
));