如何在没有foreachloop的情况下阅读yii create命令对象

时间:2014-12-04 06:41:24

标签: php yii

我使用Yii的create命令作为

$sql = "select name from users where id = 2";

$EmployeeName=Yii::app()->db->createCommand($sql)->queryAll();

现在我必须使用foreachloop来获得像

这样的特定值
foreach($EmployeeName as $value)
$name = $value['name'];

我可以绕过foreach循环吗

$EmployeeName -> name; //To get value of specific field 

问题是为什么我知道我有单个索引数组时使用foreach循环? 当我使用print_r($EmployeeName)它在对象中显示我的sql命令而不是数据时所以我很困惑如何调试对象数组

3 个答案:

答案 0 :(得分:1)

假设id是您的主键,您应该使用queryScalar代替。这将返回单个值而不是数组。

$name=Yii::app()->db->createCommand($sql)->queryScalar();

答案 1 :(得分:0)

您可以在Yii中使用此语法:

$user = Users::model()->findByAttributes(array('id' => 2));
$name = $user->name;
echo $name;

答案 2 :(得分:0)

单线解决方案

最简单的方法是通过主键(PK)查找。

假设id模型中的Users是PK(用户模型应通过gii model generator设置):

$name = Users::model()->findByPk(2)->name;