响应正文中没有数据

时间:2018-04-08 23:40:16

标签: php laravel

我正在尝试从控制器返回一些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){

}

}

2 个答案:

答案 0 :(得分:1)

您必须在returngetPostPatchDelete()中使用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);
    }
}