Yii2 传多个SQL行结果查看
Yii2 Pass multiple SQL row result to view
我遇到了一个关于我正在尝试执行的查询的问题:
SELECT o.name, p.org_id as organization_ID, COUNT(p.id) FROM publications AS p JOIN organizations as o WHERE o.id = p.org_id GROUP BY org_id
它打印出我想要的所有数据。
回到Yii2做这个查询的时候,有些犹豫
$totalpubperorg = Publication::find()->select(['org_id, COUNT(id)'])->from('publications')->join('INNER JOIN','organizations','publications.org_id = organizations.id')->groupBy('org_id');
在我看来,这给了我:
NULL NULL NULL array(1) { [0]=> string(17) "org_id, COUNT(id)" } NULL NULL array(1) { [0]=> string(12) "publications" } array(1) { [0]=> string(6) "org_id" } array(1) { [0]=> array(3) { [0]=> string(10) "INNER JOIN" [1]=> string(13) "organizations" [2]=> string(38) "publications.org_id = organizations.id" } } NULL NULL NULL array(0) { } NULL NULL NULL NULL NULL NULL NULL bool(false) string(22) "app\models\Publication" NULL NULL NULL NULL NULL NULL NULL
我在这样的视图上传递查询结果:
return $this->render('pupbs',
[
'totalpubperorg' => $totalpubperorg
]);
我想我可以简单地使用 foreach 循环显示每个结果:
<?php
foreach($totalpubperorg as $tppo){
var_dump($tppo);
}
?>
您缺少对 all()
方法的调用,该方法将 return 来自查询的模型:
foreach($totalpubperorg->all() as $tppo){
var_dump($tppo);
}
看看官方文档:Querying data
我遇到了一个关于我正在尝试执行的查询的问题:
SELECT o.name, p.org_id as organization_ID, COUNT(p.id) FROM publications AS p JOIN organizations as o WHERE o.id = p.org_id GROUP BY org_id
它打印出我想要的所有数据。
回到Yii2做这个查询的时候,有些犹豫
$totalpubperorg = Publication::find()->select(['org_id, COUNT(id)'])->from('publications')->join('INNER JOIN','organizations','publications.org_id = organizations.id')->groupBy('org_id');
在我看来,这给了我:
NULL NULL NULL array(1) { [0]=> string(17) "org_id, COUNT(id)" } NULL NULL array(1) { [0]=> string(12) "publications" } array(1) { [0]=> string(6) "org_id" } array(1) { [0]=> array(3) { [0]=> string(10) "INNER JOIN" [1]=> string(13) "organizations" [2]=> string(38) "publications.org_id = organizations.id" } } NULL NULL NULL array(0) { } NULL NULL NULL NULL NULL NULL NULL bool(false) string(22) "app\models\Publication" NULL NULL NULL NULL NULL NULL NULL
我在这样的视图上传递查询结果:
return $this->render('pupbs',
[
'totalpubperorg' => $totalpubperorg
]);
我想我可以简单地使用 foreach 循环显示每个结果:
<?php
foreach($totalpubperorg as $tppo){
var_dump($tppo);
}
?>
您缺少对 all()
方法的调用,该方法将 return 来自查询的模型:
foreach($totalpubperorg->all() as $tppo){
var_dump($tppo);
}
看看官方文档:Querying data