Arrays yii2从一个模型获取数据数组,并在另一个模型的视图中列出它

Arrays yii2从一个模型获取数据数组,并在另一个模型的视图中列出它,arrays,view,model,controller,yii2,Arrays,View,Model,Controller,Yii2,在photo controller中,当列出照片时,我可以使用函数获取用户数据 public function getUser() { return $this->hasOne(User::className(), ['id' => 'uID']); } 因此,当我在视图中列出一些照片时,我可以使用db访问用户 $model->user['username'] 但是如果我对这张照片有很多评论呢。并希望在列出照片时获得所有信息 我应该在照片模型中写些什么来获得

在photo controller中,当列出照片时,我可以使用函数获取用户数据

    public function getUser()
    {
return $this->hasOne(User::className(), ['id' => 'uID']);
}
因此,当我在视图中列出一些照片时,我可以使用db访问用户

$model->user['username']
但是如果我对这张照片有很多评论呢。并希望在列出照片时获得所有信息

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

在模型中,我想我必须使用这个

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

如果这是正确的,我如何在照片视图中输出所有评论?

是否
$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"
}
foreach($model->comments as$comment){
echo$comment->content.“
”; //假设带有实际注释的列名为“content” }
好的,但是你能写一个我如何在照片视图中绘制这个数组的例子吗?@Bizley
$model->user['username']能用吗?它应该是$model->user->username。
。答案是肯定的。总之,除了您的答案:@David:在获得所有评论后,您只需使用
foreach
@David我添加了很多示例nx:)