带有Ext JS的Bancha基本版 - 不在网格中显示数据

时间:2014-05-18 05:01:50

标签: cakephp extjs bancha

我在我的网站上使用Bancha基本版。我想使用Ext JS显示从emplyees表到网格的数据。

以下是控制器的代码:

class EmployeesController extends AppController { 
    /** 
    * @banchaRemotable 
    */ 
    public function getData(){
        return $this->Employee->find('all');
    }
}

以下是我的JavaScript文件:

Ext.application({
name: 'BanchaExample',

launch: function() {

    /**
     * Example 1
     * Create a grid panel which provides full CRUD support
     */ 

    Bancha.getStub('Employee').index(function(result){
        Ext.define('Employee', {
            extend: 'Ext.data.Model',
            fields: [ 'id', 'name' ]
        });
        var myStore = Ext.create('Ext.data.Store', {
            model: 'Employee',
            data: result.data
            });
        Ext.create('Ext.grid.Panel', {
            renderTo: Ext.getBody(),
            model: 'Employee',
            width: 400,
            height: 200,
            title: 'Application Users',
            //scaffold: 'MyApp.model.User'
            columns: [
                {
                    header: 'id',
                    width: 100,
                    ryinsortable: false,
                    hideable: false,
                    dataIndex: 'id'
                },
                {
                    header: 'name',
                    width: 150,
                    dataIndex: 'name'
                }
            ]
        });
    });      
}
});

它在我的控制台中给出了以下回复:

  

[{ “类型”: “RPC”, “TID”:1, “行动”: “雇员”, “方法”: “读”, “结果”:{ “成功”:真, “数据”: [{ “雇员”:{ “ID”: “1”, “名称”: “测试”}},{ “雇员”:{ “ID”: “2”, “名称”: “TESE”}}], “message”:“预计响应是多个Employee记录,但有些记录缺少数据,因此没有将数据转换为Ext JS / Sencha Touch结构。”}}]

仅显示带标题的网格。数据不会显示。

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

我不和Bancha合作,但这可能会有所帮助。 我没有看到任何与商店的网格连接。还需要一些配置(阅读器)来解析你的结果。 '数据'通常用于内联静态数据。

   Ext.define('Employee', {
    extend : 'Ext.data.Model',
    fields : [ {
        name : 'id',
        mapping : 'Employee.id'
    }, {
        name : 'name',
        mapping : 'Employee.name'
    } ]
    });
    var myStore = Ext.create('Ext.data.Store', {
    model : 'Employee',
    proxy : {
        url : 'SPECIFY URL TO YOUR SERVICE',
        type : 'ajax',
        reader : {
            type : 'json',
            root : 'result.data'
        }

    }
});

also add store to grid and you can remove model in grid

    Ext.create('Ext.grid.Panel', {
            renderTo: Ext.getBody(),
            store : myStore,
            ...
});

答案 1 :(得分:0)

Bancha Basic不会自动将记录从CakePHP结构转换为Ext JS。您想要做什么,您需要使用Bancha Pro。

如果你想使用Bancha Basic,你需要返回一个正确的Ext JS数据数组。