相关疑难解决方法(0)

Cakephp3:如何返回json数据?

我正在调用cakePhp控制器的ajax调用:

$.ajax({
                type: "POST",
                url: 'locations/add',
                data: {
                  abbreviation: $(jqInputs[0]).val(),
                  description: $(jqInputs[1]).val()
                },
                success: function (response) {
                    if(response.status === "success") {
                        // do something with response.message or whatever other data on success
                        console.log('success');
                    } else if(response.status === "error") {
                        // do something with response.message or whatever other data on error
                        console.log('error');
                    }
                }
            });
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我收到以下错误消息:

控制器操作只能返回Cake\Network\Response或null.

在AppController中我有这个

$this->loadComponent('RequestHandler');
Run Code Online (Sandbox Code Playgroud)

启用.

Controller函数如下所示:

public function add()
{
    $this->autoRender = false; // avoid to render view

    $location = $this->Locations->newEntity();
    if ($this->request->is('post')) {
        $location = …
Run Code Online (Sandbox Code Playgroud)

json cakephp

12
推荐指数
3
解决办法
2万
查看次数

CakePHP3.4:如何发送 json 对象响应?

我尝试迁移到 3.4,但在发送 json 对象时遇到问题。到 3.3,我使用了以下代码:

$jsonSites = json_encode([
    'reqLocation' => [
        'latitude' => $latitude,
        'longitude' => $longitude
    ],
    'sites' => $sitesList,
    'discoveryBooks' => $discoveryBooksList,
    'deleteSites' => !empty($inDeviceSites) ? [$inDeviceSites] : [],
    'deleteBooks' => !empty($inDeviceBooks) ? [$inDeviceBooks] : []
]);

$this->response->type('application/json');
$this->response->body($jsonSites);
Run Code Online (Sandbox Code Playgroud)

我的客户收到了这样的对象:

{
  "reqLocation": {
    "latitude": 48.080563,
    "longitude": 4.4649
  },
  "sites": [
    {
      "id": 5076,
      "name": "...",
      "modified": "2017-01-28T03:03:23+00:00",
      "directory_name": "fr/26/26120_56cc30ea4d907",
      "type": "portail",
      "longitude": 7.031953,
      "latitude": 47.939468,
      "image_0": "jpg",
      "picto_color": "#FFDDDDDD",
      "agthemes": [],
      "distance": 131.29188575851,
      "category": 1281,
      "category_name": "Jardin",
      "sitecategories": …
Run Code Online (Sandbox Code Playgroud)

cakephp-3.4

1
推荐指数
1
解决办法
1287
查看次数

标签 统计

cakephp ×1

cakephp-3.4 ×1

json ×1