yii2从一个模型获取数据并将其列在另一个模型中

时间:2016-12-29 10:17:17

标签: arrays view model controller yii2

在列出照片的照片控制器中,我可以使用功能

获取用户数据
    public function getUser()
    {
return $this->hasOne(User::className(), ['id' => 'uID']);
}

因此,当我在视图中列出一些照片时,我可以使用

访问用户数据库
$model->user['username']

但如果我有这张照片的评论数据怎么办?并且希望在列出照片时获得所有奖励。

我应该在照片模型中写什么来获取这张照片的所有评论以及如何在视图中列出它们?

模特中的

我认为我必须使用这个

public function getComments()
{
    $modelComments = Comments::find()->where(['id'=>'commentID'])->all();
    return [array('modelComments' => $modelComments)];
}

如果这是正确的,我如何根据照片输出所有评论?

1 个答案:

答案 0 :(得分:2)

$model->user['username']是否有效?它应该是$model->user->username

无论如何设置照片和评论之间的关系,比如用户,但是一对多。

public function getComments()
{
    return $this->hasMany(Comments::className(), ['id' => 'commentID']);
}

现在,在调用$model->comments时,您已获得与照片相关的所有Comments模型的数组。

显示它们的最简单方法是迭代这个数组,如:

foreach ($model->comments as $comment) {
    echo $comment->content . '<br>';
    // assuming column name with actual comment is "content"
}