Yii - 如何从Active Record中获取值数组

Mar*_*ian 8 arrays activerecord yii

使用Yii,我如何从Active Record中获取数组.

说这样的话:

array('foo', 'bar', 'lala')

从这样的事情:

MyTable::model()->findall()
Run Code Online (Sandbox Code Playgroud)

bri*_*iiC 24

如果我理解正确的话:

$users = User::model()->findAll();
$usersArr = CHtml::listData( $users, 'id' , 'name');
print_r( $usersArr );
Run Code Online (Sandbox Code Playgroud)

它会给你数组id => name

Array {
    2 => 'someone',
    20 => 'kitty',
    102 => 'Marian',
    // ...
}
Run Code Online (Sandbox Code Playgroud)

  • 天哪!CHtml得到阵列!马盖先! (4认同)

小智 8

对于yii2,使用:

yii\helpers\ArrayHelper::map(MyModel::find()->all(), 'id', 'name'));
Run Code Online (Sandbox Code Playgroud)

要么

yii\helpers\ArrayHelper::getColumn(MyModel::find()->all(), 'name'));
Run Code Online (Sandbox Code Playgroud)


小智 7

ActiveRecord类有一个名为attributes的属性.您可以在此处找到它的描述:http://www.yiiframework.com/doc/api/1.1/CActiveRecord#attributes-detail.

要获取数组中的所有属性,请使用以下命令: $var = $model->attributes;


Nei*_*gan 0

不要使用ActiveRecord。使用CDBCommand->queryColumn()

  • 问题是如何从 MyTable::model()->findall() 中获取实际数据;所以这个答案是没有意义的 (2认同)