Laravel 8 响应宏
如果你想要定义一个自定义的可以在多个路由和控制器中复用的响应,可以使用 Response
门面上的 macro
方法。例如,在某个 服务提供者 的 boot
方法编写如下代码:
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\ServiceProvider;
class ResponseMacroServiceProvider extends ServiceProvider
{
/**
* 注册响应宏
*
* @return void
*/
public function boot()
{
Response::macro('caps', function ($value) {
return Response::make(strtoupper($value));
});
}
}
macro
方法接受一个名称作为第一个参数,闭包函数作为的第二个参数。响应宏的闭包在 ResponseFactory
实现类或辅助函数 response
中调用宏名称的时候被执行:
return response()->caps('foo');