2016-06-30 4 views
3

Если я попытаюсь вернуть JSON-String с помощью return response()->json($categorie);, я получаю пустой ответ. Если я заменяю return на echo, я получаю HTTP/1.0 200 OK Cache-Control: no-cache Content-Type: application/json {"id":5,"name":"blah","parent":4,"visible":"yes","position":0,"created_at":"2016-06-29 15:23:25","updated_at":"2016-06-29 15:23:25"} в качестве выхода для браузера.Laravel 5.2 не возвращает ответ как JSON

Я использую Laravel 5.2. Вот полный код:

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Categories; 

class ApiController extends Controller 
{ 
    public static function categorieGetById($id) { 
     $categorie = Categories::find($id); 
     echo response()->json($categorie); 
     // return response()->json($categorie); 
    } 
} 

UPDATE: контроллер ничего не возвращает. каждый return производит пустой вывод. Почему?

+1

'Категории :: найти ($ ID) -> toJson()' попробовать это как так – GONG

+0

Тот же результат. 'return' ist empty и' echo' передает заголовок на вывод. – Tim

+0

, пожалуйста, укажите свой JS-код, может быть его тип missmatch в нем. У вас есть 'dataType: 'json' // если его jquery наверняка 'хотя бы? – GONG

ответ

0

qoute из http://laravel-tricks.com/tricks/return-json-response:

В официальной документации: http://laravel.com/docs/responses#special-responses, нужно сделать Response :: JSON (...), чтобы создать ответ JSON. На самом деле, если возвращаемое значение представляет собой массив или экземпляр arrayableinterface или jsonableinterface, например, красноречивую модель, вы можете просто вернуть ее, это будет json, волшебным образом.

0

Вы должны использовать метод toJson().

$categorie = Categories::find($id)->toJson(); 
echo $categorie; // your json output 
return $categorie; // same json output 

Метод toJson преобразует коллекцию в JSON.

в текущем коде,

$categorie = Categories::find($id); 
return response()->json($categorie); // your json output with return 

Примечание: - Вы должны написать return здесь.

В коде выше, если вы пишете эхо,

echo response()->json($categorie); 

, то он будет показывать

HTTP/1.0 200 OK Cache-Control: no-cache Content-Type: application/json {"id":5,"name":"blah","parent":4,"visible":"yes","position":0,"created_at":"2016-06-29 15:23:25","updated_at":"2016-06-29 15:23:25"} 
Смежные вопросы