Php Laravel控制器未将内容输出为真实JSON
我的Php Laravel控制器未将内容输出为真实JSON,php,json,laravel,eloquent,laravel-5.7,Php,Json,Laravel,Eloquent,Laravel 5.7,我的Laravel应用程序上有以下控制器: class ProjectController extends Controller { ... public function index() { $projects = Project::where('is_completed', false) ->orderBy('created_at', 'desc') ->withCount(['tasks' =>
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
):
您知道如何将内容输出为realJSON
content吗
谢谢 而不是:
$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());
请看的示例,而不是:
$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());
请看一个例子