写api接口的时候,要按照json数据格式返回,但是laravel自带的写起来很臃肿
public function index () {
……
return response()->json();
}
于是,我们可以自定一个返回接口。所以可以用到laravel中的响应宏(Response 宏)
1、创建响应provider
php artisan make:provider ResponseApiProvider
2、App\Providers下ResponseApiProvider
public function register()
{
//
Response::macro('success', function($data=array(), $msg='success', $status=200){
$content = [
'code' => 0,
'msg' => $msg,
'data' => $data
];
return response()->json($content, $status);
});
Response::macro('failed', function($data=array(), $msg='failed', $status=400){
$content = [
'code' => 1,
'msg' => $msg,
'data' => $data
];
return response()->json($content, $status);
});
}
3、config/app.php注册
'providers' => [
……
App\Providers\ResponseApiProvider::class,
],
4、 App\Http\Controllers下Controller类修改
class Controller
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
protected function success($data=array(), $msg='success', $status=200){
return response()->success($data, $msg, $status);
}
protected function failed($data=array(), $msg='failed', $status=400){
return response()->failed($data, $msg, $status);
}
}
5、控制器下测试返回
public function index(){
$arr = [
'name' => 'Lily',
'age' => 18,
'phone'=> '135XXXX4512',
];
return $this->success($arr);
}
image.png