如何在yii CActiverecord中选择某些列?

时间:2014-01-03 11:22:36

标签: php yii

我想使用CActive记录获取所有行,某些列

我听说过findAll();但它返回所有行,列

$models = Users::model()->findAll();

如何获取某些列,例如,只有所有用户的用户名和密码?

4 个答案:

答案 0 :(得分:7)

您可以使用CDbCriteria

$criteria = new CDbCriteria;
$criteria->select = 't.username, t.password '; // select fields which you want in output
$models = Users::model()->findAll($criteria);

答案 1 :(得分:1)

如果你想以数组的形式得到结果,试试这个

$records= Yii::app()->db->createCommand()
                    ->select('username,password')
                    ->from('users')
                    ->queryAll();

如果作为对象,那么 kumar_v 已经给出了答案

答案 2 :(得分:0)

您可以像往常一样使用sql查询,但这样做不会出现在yii标准

因此,获取findAll()并获取所需的数据。这是建议和最好的。

答案 3 :(得分:0)

Kumar_v 的回答是完全正确的,但如果您只想要用户名和密码(或任何两个字段),

您还可以使用CHtml::listData()这样的功能:

 $users=CHtml::listData(Users::model()->findAll(array('condition'=>'*condition*',
'limit'='*limit*')),"username", "password");

$ users是这样的数组:

$users = array(
'username1'=>'password1',
'username2'=>'password2',
.
.
.

);

当然,您只需$users['username1']

即可访问用户名密码