0

我想使用以下代码从 Ext.data.store 中的 Yii 控制器操作中获取数据:

var vehicles = new Ext.data.Store({
        reader: new Ext.data.JsonReader({
            fields: ['vehiclename'],
            root: 'vehicles'
        }),
        proxy: new Ext.data.HttpProxy({
            url: '<?php echo $this->createUrl('GetVehicles');?>'
        }),
        autoLoad: true
    });

或以下车辆代码:

var vehicles = Ext.create('Ext.data.Store', {
        fields: [
            {name: 'vehiclename'}
        ],
        proxy: {
            type: 'ajax',
            url: '<?php echo  $this->createUrl('GetVehicles'); ?>',
            reader: {
                type: 'json',
                root:'vehicles'
            }
        },
        autoLoad: true
    });

我的操作代码是:

public function actionGetVehicles()
{
    $sql = "select vehicleName from vehicletbl inner join companytbl on vehicletbl.companyid=companytbl.companyid and companytbl.companyid='2';";
    $vehicles = Yii::app()->db->createCommand($sql)->queryAll();
    //var_dump($vehicles);
    echo '{vehicles:'.json_encode($vehicles).'}';
}

当我使用浏览器地址栏发送操作请求时,我得到以下 json:

{vehicles:[{"vehiclename":"pride"},{"vehiclename":"benz"}]}

但我不知道为什么 Ext.data.store 无法获取数据和存储主题!
我的代码有什么问题?
我在以下位置使用商店:

items: [treePanel,Ext.create('Ext.grid.PropertyGrid', {
                            title: 'History',
                            closable: false,
                            header: true,
                            sortableColumns: false,
                            customEditors: {
                                Vehicle: Ext.create('Ext.form.ComboBox', {                       
                                    store: vehicles,
                                    queryMode: 'local',
                                    displayField: 'vehiclename'

                                })
                            },
                            /*propertyNames: {
                                'evtStart': 'Start Time'
                            },*/
                            source: {
                                "Vehicle": 'Select Vehicle',
                                "Select Start Date": false,
                                "Select End Date": true
                            }
                        })]

Chrome 开发者工具输出:
在此处输入图像描述

4

1 回答 1

1

您返回的 json 无效。它应该是:

{"vehicles":[{"vehiclename":"pride"},{"vehiclename":"benz"}]}

(根周围的引号vehicles)。

于 2012-08-23T00:27:27.317 回答