我试图在Yii2中输出相关数据。我的输出代码如下所示(就像我在 Yii 1 中所做的那样):
foreach ($model->comments as $key => $comment) {
echo $comment->title;
}
但是我收到错误tying to get property on a non-object
,$model->comments
的var_dump显示数组,看起来像:
array (size=1)
0 =>
object(common\models\Comment)[74]
private '_attributes' (yii\db\BaseActiveRecord) =>
array (size=5)
'id' => int 1
'title' => string 'testComment' (length=11)
'body' => string 'body' (length=4)
'post_id' => int 1
'user_id' => int 1
private '_oldAttributes' (yii\db\BaseActiveRecord) =>
array (size=5)
'id' => int 1
'title' => string 'testComment' (length=11)
'body' => string 'body' (length=4)
'post_id' => int 1
'user_id' => int 1
private '_related' (yii\db\BaseActiveRecord) =>
array (size=0)
empty
$model->getComments()
的 var_dump 返回 ActiveQuery 对象:
object(yii\db\ActiveQuery)[67]
public 'sql' => null
public 'on' => null
public 'joinWith' => null
public 'select' => null
public 'selectOption' => null
public 'distinct' => null
public 'from' => null
public 'groupBy' => null
public 'join' => null
public 'having' => null
public 'union' => null
public 'params' =>
array (size=0)
empty
private '_events' (yii\base\Component) =>
array (size=0)
empty
private '_behaviors' (yii\base\Component) =>
array (size=0)
empty
public 'where' => null
public 'limit' => null
public 'offset' => null
public 'orderBy' => null
public 'indexBy' => null
public 'modelClass' => string 'common\models\Comment' (length=21)
public 'with' => null
public 'asArray' => null
public 'multiple' => boolean true
public 'primaryModel' =>
object(common\models\Post)[65]
private '_attributes' (yii\db\BaseActiveRecord) =>
array (size=5)
'id' => int 1
'header' => string 'ds' (length=2)
'content' => string 'dsad' (length=4)
'created' => string '0000-00-00' (length=10)
'status' => int 1
private '_oldAttributes' (yii\db\BaseActiveRecord) =>
array (size=5)
'id' => int 1
'header' => string 'ds' (length=2)
'content' => string 'dsad' (length=4)
'created' => string '0000-00-00' (length=10)
'status' => int 1
private '_related' (yii\db\BaseActiveRecord) =>
array (size=0)
empty
private '_errors' (yii\base\Model) => null
private '_validators' (yii\base\Model) => null
private '_scenario' (yii\base\Model) => string 'default' (length=7)
private '_events' (yii\base\Component) =>
array (size=0)
empty
private '_behaviors' (yii\base\Component) =>
array (size=0)
empty
public 'link' =>
array (size=1)
'post_id' => string 'id' (length=2)
public 'via' => null
public 'inverseOf' => null
我在这两种情况下都看到了我的数据,但是我如何从这个构造中接收它们? ($model->getComments() 或 $model->comments 哪种方式是正确的?)
最佳答案
希望你一切都好! 您只需要对下面给出的代码进行小修改
foreach ($model[0]->comments as $key => $comment) {
echo $comment->title;
}
希望这会让您开心。
关于php - 在 Yii2 中输出关系数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26452071/