我想从控制器方法中获取数据,并将数据作为JSON字符串返回,这样JavaScript就可以处理它。
我执行了所有的步骤,这样Cake就可以像这里描述的那样处理JSON。
AJAX调用在视图中:
$.ajax({
url: '/cake/workers/getWorkersAsJSON.json',
async: true,
success: function(data) {
console.log("data: " + data);
}
});
控制器方法:
public function getWorkersAsJSON() {
$workers = ClassRegistry::init("Worker")->find('list', array( 'order' => array('fullname' => 'asc'), 'conditions' => array('Worker.partner_id' => '6')));
$this->set('_serialize', array('workers'));
}
我期望JavaScript的data
变量中的数据,但这始终是null
。
当我将return json_encode($workers);
添加到控制器时,我会得到数据,但我不认为这是整个设置背后的想法。
我该怎么做才能让JavaScript获取数据?
将$this->set(compact('workers'))
添加到操作中。目前,您只设置_serialize
,它指示要序列化哪个var,但没有将$workers
var本身传递给视图。