嗨,请帮助我尝试显示一个以 symfony 2 作为后端的 Extjs 4.2 网格面板。
我的 config.yml
网格:
pattern: /grid
defaults: { _controller:ExtAssExampleBundle:displaygrid:display}
requirements: { _format: (json), _method: GET }
我的控制器
类 displaygridController 扩展控制器
{
public function displayAction()
{
$repository = $em->getRepository('ExtAssexampdbBundle:movies');
$items = $repository->show();
$response = json_encode($items);
return $this->render('ExtAssExampleBundle:Default:grid.html.php',array('response'=>$response));
}
}
网格.html.php
Ext.onReady(函数()
{ Ext.define('电影', {
extend: 'Ext.data.Model',
fields: [
{name:'id', type: 'int'},
{name:'title',type: 'string'},
{name:'director',type: 'string'},
{name:'released',type: 'string'},
{name:'genre', type: 'int'},
{name:'tagline',type:'string'}
] } );
var mystore = Ext.create('Ext.data.JsonStore',
{
model: 'movie',
autoSync: true,
autoLoad: true,
data:response,
proxy: {
type:'ajax',
url:' ',
//我需要在这里传递什么
reader: {
type:'json',
root: 'movies'
},
writer:{
encode: true,
writeAllFields: true,
type: 'json',
root: 'data'
}
},
});//store completed
var grid = Ext.create('Ext.grid.Panel',
{
style: 'margin-top: 1%; margin-left: 24%',
store: mystore,
id:'grid',
width: 700,
height: 300,
title: 'Movie Details',
collapsible: true,
closable:true,
maximizable: true,
frame:true,
dirty:false,
draggable: true,
stripedRows: true,
columns:
[
{header: 'MovieName', width: 100, sortable: true, dataIndex:response[0].title,editor:{xtype: 'textfield',allowBlank:false} },
{header: 'Director Name', width: 100, sortable: true, dataIndex: 'director',editor: 'textfield',allowBlank:false},
{header: 'Released Date', width: 150, sortable: true, dataIndex: 'released',editor: 'datefield',renderer: Ext.util.Format.dateRenderer('Y-m-d')},
{header:'流派', width:150, sortable:true, dataIndex:'genre',editor:'numberfield',}, {header: 'Tagline', width: 200, sortable: true, dataIndex: 'tagline',编辑器:'文本字段'},
],
});
mystore.load();
grid.render('table')
});
问题是我如何访问 symfony2 控制器发送的 $response 并在 Extjs 4.2 网格中显示值。请帮助解决这个问题