使用laravel做前后端分离项目,每次返回数据为json格式,又不想一直写response()->json($data),就像写个公共方法,毕竟能少打一个箭号对我来说都是好的
开始的代码如下
protected static function successResponse($data = "")
{
self::send_response(['code' => 20000, 'data' => $data]);
}
protected static function failResponse($code, $message = "")
{
self::send_response(['code' => $code, 'message' => $message]);
}
private static function send_response($data)
{
return response()->json($data);
}
然后就发生了很奇怪的现象,子类使用return response()->json($data);数据返回没有问题,但是子类使用父类的successResponse方法就不返回任何数据了,百思不得其解
最后发现是父类的send_response要修改下,如下
private static function send_response($data)
{
return response()->json($data)->send();
}
说实话,问题解决了,但是知其然不知所以然,为什么子类可以直接返回,父类要加send才可以??