YII2如何在连接后获取每条记录
如何在多次连接后获取活动记录中的每条记录YII2如何在连接后获取每条记录,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,如何在多次连接后获取活动记录中的每条记录 $model = \common\models\opcr\OpcrKra::find() ->joinWith('opcrRoObjectives') ->joinWith('opcrRoObjectives.opcrFdObjectives') ->joinWith('opcrRoObjectives.opcrFdObjectives.opcrIndividuals'); 我得到
$model = \common\models\opcr\OpcrKra::find()
->joinWith('opcrRoObjectives')
->joinWith('opcrRoObjectives.opcrFdObjectives')
->joinWith('opcrRoObjectives.opcrFdObjectives.opcrIndividuals');
我得到一个试图获取非对象属性的错误
foreach ($model->all() as $row) {
echo "<tr>"
. "<td></td>"
. "<td>" . $row->kra . "</td>"
. "<td>" . $row->opcrRoObjectives->id . "</td>" // error here
. "</tr>";
}
foreach($model->all()作为$row){
回声“”
. ""
.“.$row->kra”
.“”.$row->opcrRoObjectives->id.“//此处出错
. "";
}
我试图显示$row->count()
,它给出了我期望的确切记录数 您只需尝试以下解决方案:
$model = \common\models\opcr\OpcrKra::find()
->joinWith('opcrRoObjectives')
->joinWith('opcrRoObjectives.opcrFdObjectives')
->joinWith('opcrRoObjectives.opcrFdObjectives.opcrIndividuals')
$result = $model->asArray()->all();
那么在你看来,
foreach ($model as $row) {
echo "<tr>"
. "<td></td>"
. "<td>" . $row->kra . "</td>"
. "<td>" . $row['opcrRoObjectives']['id'] . "</td>"
. "</tr>";
}
foreach($model as$row){
回声“”
. ""
.“.$row->kra”
.“.$row['opcrrooobjectives']['id']”
. "";
}
我使用
$authors=Author::find()->with('posts')->all();//获取作者的帖子
foreach($authors作为$author的作者){
echo“Author:”.$Author->name.”;
回声“”;
foreach($author->posts as$post){//此处不执行任何查询
回声“- ”$post->title.“
”;
}
回声“
”;
}
您确定每个OpcrKra记录都存在opcrRoObjectives吗?“joinWith'应用左连接。
$authors = Author::find()->with('posts')->all(); // fetches the authors with their posts
foreach($authors as $author) {
echo "<h2>Author : " . $author->name . "</h2>";
echo "<ul>";
foreach($author->posts as $post) { // no query executed here
echo "<li>" . $post->title . "</li>";
}
echo "</ul>";
}