## **创建中间件**
在 application/http/middleware 目录下面一个User中间件。
~~~
<?php
namespace app\http\middleware;
class User{
public function handle($request, \Closure $next){
return $next($request);
}
}
~~~
>[success] 在一些项目开发过程中. 也可能会使用到前置和后置的需求。
> 那么就可以将前置和后置中间件放在同一个文件了
## **前置/后置中间件**
~~~
<?php
namespace app\http\middleware;
class User{
public function handle($request, \Closure $next){
//前置 添加中间件执行代码 Start
echo '我是前置';
//前置 添加中间件执行代码 End
$response = $next($request);
//后置 添加中间件执行代码 Start
echo '我是后置';
print_r( $response->getData() ); //获取控制器index()方法返回的数据
//后置 添加中间件执行代码 End
return $response;
}
}
~~~
>[info] 调用也是比较简单的,这里只介绍用控制器的调用方法。
## **控制器调用**
~~~
<?php
namespace app\index\controller;
class User{
//指定方法调用中间件
protected $middleware = [
'\app\http\middleware\User' => ['only' => ['index'] ],
];
public function index(){
echo 'index';
return ['code'=>1,'message'=>"处理成功"]; //返回数据到前端 中间件也可以获取
}
}
~~~
## **运行效果**
~~~
我是前置
index
我是后置
Array
(
[code] => 1
[message] => 处理成功
)
['code'=>1,'msg'=>"处理成功"]
~~~