我用extjs创建了cakephp网格视图
对于我创建的
1)一个movie_controller控制器文件,我在其中写入
function index() {
$this->recursive = 0;
$this->set('movies', $this->Movie->find("all"));
}
2)秒创建索引。查看/movies/index.ctp文件
<?php echo '{"rows":'.$javascript->Object($movies).'}'; ?>
3)然后在js文件中我称之为索引。ctp文件
没有在网格中获取数据。在firebug中调试时,会显示这个数组
{"行":[{"电影":{" id ":"1","date_":"1970-01-01","笔记":"Note13455——","asset_id":"1","maint_picture":","maint_condition1":"可怜","maint_condition2":"新","maint_condition3":"优秀","maint_condition4":"好"}},{"电影":{" id ":"2","date_":"2009-03-20","笔记":"注2","asset_id":"1","maint_picture":空,"maint_condition1":"优秀","maint_condition2":"优秀","maint_condition3":"新","maint_condition4":"穷"}}]}
==>在这个json文件中,我如何删除在开始所有记录中显示的电影数组
<?php echo '{"rows":'.$javascript->Object($movies['Movie']).'}'; ?>
如果要删除第一个数组,我们必须逐个数组打印在网格中。其做。
<?php
$output='{"rows":[';
$total=$ta=count($movies);
for($i=0;$i<$total;$i++)
{
$t=$i+1;
if($t==$total)
{
$output.=$javascript->Object($movies[$i]['Movie']);
}
else
{
$output.=$javascript->Object($movies[$i]['Movie']).',';
}
}
$output.=']}';
echo $output;
?>
你离目标越来越近了。尝试在控制器中使用$movies
变量完成所有工作(请记住MVC模式!别弄坏了!
你可以这样做…
// in your controller
$data = null;
$movies = $this->Movie->find('all');
foreach ($movies as $key => $value) {
foreach ($value['Movie'] as $k => $v {
$data['rows'][$key][$k] = $v;
}
}
然后将其转换为json对象。
基本上我认为它没有加载数据因为json是这样的
{"行":[{"电影":{" id ":"1","date_":"1970-01-01","笔记":"Note13455——","asset_id":"1","maint_picture":","maint_condition1":"可怜","maint_condition2":"新","maint_condition3":"优秀","maint_condition4":"好"}},{"电影":{" id ":"2","date_":"2009-03-20","笔记":"注2","asset_id":"1","maint_picture":空,"maint_condition1":"优秀","maint_condition2":"优秀","maint_condition3":"新","maint_condition4":"穷"}}]}
应该是这样的
{"行":[{"id":"1","date_":"1970-01-01","笔记":"Note13455——","asset_id":"1","maint_picture":","maint_condition1":"可怜","maint_condition2":"新","maint_condition3":"优秀","maint_condition4":"好"}, {"id":"2","date_":"2009-03-20","笔记":"注2","asset_id":"1","maint_picture":空,"maint_condition1":"优秀","maint_condition2":"优秀","maint_condition3":"新","maint_condition4":"可怜"}]}
您想要删除"Movies": {..object..}
部分,所以它只是一个对象数组,如{id: 1},{id: 2},{id: 3}
等。
确保在JsonReader中将行设置为根!!
var reader = new Ext.data.JsonReader({
root: 'rows'
});