我正在尝试从控制器返回一些JSON数据。我实际上得到了它。
response()->json(['success'=>true])->send();
但这不是在文档中完成的方式。我试过了
return \Response::json(['success' => true]);
,状态代码为200,但正文中没有数据。我想这没关系,但我真的想知道问题是什么。日志中没有任何内容,因此似乎没有错误。如果有任何帮助,我正在使用Laravel 5.5.40和一个名为tymon / jwt-auth的依赖项,它将一些中间件应用于auth和刷新。
应该补充一点,我试图简单地返回一个数组和字符串,但结果保持不变。
CONTROLLER 注意createGame中的评论部分
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Game;
use Illuminate\Http\Response;
class GameController extends Controller
{
public function getPostPatchDelete(Request $req){
switch($req->method()){
case 'GET':
$this->getGame($req);
case 'POST':
$this->createGame($req);
case 'PATCH':
$this->updateGame($req);
case 'DELETE':
$this->deleteGame($req);
}
}
private function getGame($req){
}
private function createGame($req){
//Response::json(['success' => 'hi, atiq']);
//return response()->json(['lel'=>'lol'], 200);
response()->json(['success'=>true])->send();
}
private function updateGame($req){
}
private function deleteGame($req){
}
}
答案 0 :(得分:1)
您必须在return
和getPostPatchDelete()
中使用createGame()
:
public function getPostPatchDelete(Request $req){
switch($req->method()){
case 'POST':
return $this->createGame($req);
}
}
private function createGame($req){
return response()->json(['success'=>true]);
}
答案 1 :(得分:0)
我一直这样做的方式是这样的:
return response()->json(['message' => 'Some message.'], 200);
注意:json()
函数的第二个参数是状态代码。
当然,总是很高兴使用描述性常量而不是数字 - 在这种情况下设置HTTP响应代码 - 所以:
use Illuminate\Http\Response;
class CoolController extends Controller {
public function coolFunction() {
// your logic
return response()->json(['message' => 'A message.'], Response::HTTP_OK);
}
}