我正在使用CakePHP创建一个RESTful api,它通过前端连接到EmberJS。
CakePHP中的以下代码正在生成我需要的JSON,但它放在EmberJS不喜欢的方括号中。如何在没有方括号的情况下获取数据?
CakePHP视图
public function view($id = null) {
if($id == NULL)
{
$id = $this->request->params['id'];
}
$this->layout = 'ajax';
$options = array('conditions' => array('Content.' . $this->Content->primaryKey => $id));
$content = $this->Content->find('first', $options);
$content = Set::extract('/Content/.', $content);
$this->set('content', $content);
$this->set('_serialize', $content);
;
}
view.ctp
echo json_encode(compact('content'));
它正在归还:
{
"content":
[{
"id":"1",
"name":"Home",
"extended":"This is the homepage.",
"created":"2013-08-05 23:40:55",
"modified":"2013-08-05 23:40:55"
}]
}
我需要这个:
{
"content":
{
"id":"1",
"name":"Home",
"extended":"This is the homepage.",
"created":"2013-08-05 23:40:55",
"modified":"2013-08-05 23:40:55"
}
}
三江源
答案 0 :(得分:1)
方括号是Javascript / JSON中的数组。你显然需要一个对象(我从未使用过EmberJs)。所以:
json_encode(compact('content'),JSON_FORCE_OBJECT);