在Yii 2中使用带查询生成器的foreach循环

问题描述:

由于某种原因,这不起作用。我得到的错误是“未定义指数:cu_id”为线在Yii 2中使用带查询生成器的foreach循环

$cu_id = $rows['cu_id']; 

我想我只是完全使用QueryBuilder的错foreach循环。任何帮助正确的语法?谢谢!

$query = new Query; 

      $query->select('cu_id')->from('cu_emails')->where(['creator_id' => $user_id, 'email' => $email]); 


    foreach ($query as $rows) { 

      $cu_id = $rows['cu_id']; 

      echo"CU ID: $cu_id<br /><br />"; 

    } 

此外,我在Yii 2框架万一有人错过了。

您查询无法运行。

$query->all() 

,然后记录的foreach或

$query->one() 

,并从一个记录

$query = new Query; 
$query->select('cu_id')->from('cu_emails')->where(['creator_id' => $user_id, 'email' => $email]) 
$results = $query->all(); 

foreach ($results as $rows) { 
     $cu_id = $rows['cu_id']; 
     echo"CU ID: $cu_id<br /><br />"; 
} 
+0

这工作。谢谢! – kevinkt

你应该添加所有()或一个()用于获取行

$query = new Query; 

    $myModels= $query->select('cu_id') 
     ->from('cu_emails') 
     ->where(['creator_id' => $user_id, 'email' => $email]) 
     ->all(); 

和获得的模型$ myModels

foreach ($myModels as $rows) { 

     $cu_id = $rows['cu_id']; 

     echo"CU ID: $cu_id<br /><br />"; 

} 
+0

我的错误消失,获得数据,但通过与任何数据的查询,实际上并不循环。什么是调试我的查询的好方法? – kevinkt

+0

循环没有回声为cu_id值或不循环? – scaisEdge

+0

这很接近,但$ rows-> cu_id在这个实例中不起作用。上面的解决方案使用$ rows ['cu_id']工作。 – kevinkt