Arrays yii2从一个模型获取数据数组,并在另一个模型的视图中列出它
在photo controller中,当列出照片时,我可以使用函数获取用户数据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'] 但是如果我对这张照片有很多评论呢。并希望在列出照片时获得所有信息 我应该在照片模型中写些什么来获得
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:)