yii2-以fetch\ U KEY\ U PAIR数组格式使用activerecord获取数据
我有这样的桌子:yii2-以fetch\ U KEY\ U PAIR数组格式使用activerecord获取数据,activerecord,yii2,Activerecord,Yii2,我有这样的桌子: CREATE TABLE `developer` ( `id` bigint(20) AUTO_INCREMENT, `name` varchar(1024) NOT NULL, `link` varchar(1024) NOT NULL, `parent` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `parent` (`parent`), CONSTRAINT `developer_ibfk_
CREATE TABLE `developer` (
`id` bigint(20) AUTO_INCREMENT,
`name` varchar(1024) NOT NULL,
`link` varchar(1024) NOT NULL,
`parent` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `parent` (`parent`),
CONSTRAINT `developer_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `developer` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_unicode_ci;
我只想在PDO::FETCH_KEY_PAIR
数组中获取id
,name
,并使用:
Developer::find()->select(['id', 'name'])->asArray()->all();
但是我无法以PDO::FETCH_KEY_PAIR
格式获取数据如何操作?您可以使用
ArrayHelper
生成带有键的数组
是id
字段,而值是名称
字段。这样使用:
ArrayHelper::map(Developer::find()->select(['id', 'name'])->asArray()->all(), 'id', 'name')
$res = Yii::$app->db->createCommand('SELECT id, name FROM developer')->queryAll(PDO::FETCH_KEY_PAIR);
更多
编辑:
您可以使用createCommand
,如下所示:
ArrayHelper::map(Developer::find()->select(['id', 'name'])->asArray()->all(), 'id', 'name')
$res = Yii::$app->db->createCommand('SELECT id, name FROM developer')->queryAll(PDO::FETCH_KEY_PAIR);
但如果要使用ActiveRecord
请参见中的
在此行中,未设置fetchMode
您可以选择这个类Query
,ActiveRecord
,并更改他的。并从新类扩展您的开发
模型。在控制器中添加代码
public function actionViewdata() {
$model = new Contact();
$data = $model::find()
// ->where(['id' > 0])
//->orderBy('age')
->all();
return $this->render('viewdata', array(
'model' => $model,
'contactdata' => $data,
));
}
现在查看(viewdata.php)
echo';
打印($contactdata);
我知道这一点,但这不是解决方案,也许yii2有另一个选择来选择fetch方法。