1.代码更加直观
2.再也不用在initialize()构造函数里写返回值
3.分步骤执行程序,只有运行到return $next($request)才会执行下一步操作
4.比如权限验证、登录验证等等都可写在中间件里!
代码例子如下:
<?php
declare (strict_types = 1);
namespace app\index\middleware;
use app\index\model\User;
/**
* 登录检查
*/
class Login
{
public function handle($request, \Closure $next)
{
if (empty($request->userInfo)) {
return $request->isPost() ? json(['status'=>'login', 'message'=> lang('login status expired')]) : redirect(url('login/index'));
}
return $next($request);
}
}