我在我的网站上使用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结构。”}}]
仅显示带标题的网格。数据不会显示。
请帮我解决这个问题。
答案 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数据数组。