2016-12-29 73 views
1

照片控制器上市了,而上市的照片,我可以使用函數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)]; 
} 

如果這是正確的我怎麼能輸出所有評論鑑於照片?

回答

2

是否$model->user['username']可以工作?它應該是$model->user->username

無論如何設置照片和評論像用戶,但一對多之間的關係。現在

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

調用$model->comments當你有與照片相關的所有Comments車型的陣列。

顯示它們Simpliest方式是遍歷數組,如:

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

確定但你可以寫例子的照片查看我怎麼畫這個數組? – David

+0

@Bizley'''$ model-> user ['username']是否可以工作?它應該是$ model-> user-> username.'''。答案是肯定的。無論如何,除了你的答案:@大衛:獲得所有評論後,你只需要循環使用例如評論。 '''foreach'''。 – MacGyer

+0

@大衛我已經添加了很多示例 – Bizley

相關問題