Контроллер Laravel не выводит контент как настоящий JSON - PullRequest
0 голосов
/ 13 октября 2018

В моем приложении Laravel есть следующий контроллер:

class ProjectController extends Controller {
    ...
    public function index() {
        $projects = Project::where('is_completed', false)
            ->orderBy('created_at', 'desc')
            ->withCount(['tasks' => function ($query) {
                $query->where('is_completed', false);
            }])->get();
        return $projects->toJson(JSON_PRETTY_PRINT);
    }
    ...
}

, на который ссылается следующий маршрут:

Route::get('projects', 'ProjectController@index');

Моя проблема равна что когда я перехожу на URL:

https://127.0.0.1/api/projects

Тогда я получаю ожидаемый результат, но тип контента не JSON, как вы можете видеть ниже (это HTML):

enter image description here

Есть идеи, как вывести контент в виде реального JSON контента?

Спасибо!

1 Ответ

0 голосов
/ 13 октября 2018

Вместо:

$projects = Project::where('is_completed', false)
    ->orderBy('created_at', 'desc')
    ->withCount(['tasks' => function ($query) {
        $query->where('is_completed', false);
    }])->get();
return $projects->toJson(JSON_PRETTY_PRINT);

вы должны использовать:

return response()->json(Project::where('is_completed', false)
    ->orderBy('created_at', 'desc')
    ->withCount(['tasks' => function ($query) {
        $query->where('is_completed', false);
    }])->get());

Взгляните на пример ответа Json в документации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...