今天终于学会中间件的使用方法了,感谢社区的教程
要把 大象 哦不 中间件 写好总共分几步
第一步:生成中间件文件
# 这里是命令行
# 在当前的项目目录
# 还有可爱的生成命令
$ php artisan make:middleware 这里是中间件的名称 (例如:LaravelChina)
Middleware created successfully. # 这里是生成成功的时候返回
# 此时生成的文件在项目目录的 Http/Middelware 下
第二步:使用你想要用的方式来定义中间件
我是在 Http/Kernel.php
中声明一个特定的中间件,其他的还没用到。
下面我定义了一个添加商品分类的中间件,其中的 key
格式是随意的我只是同类型的比较多就用点点区分了。
protected $routeMiddleware = [
... 省略
// 商品分类
'goods.category.add' => \App\Http\Middleware\GoodsCateAdd::class, // 添加
];
第三部:在中间件中开启艺术的创作
其实我也不太清楚中间件到底是做什么的我只是用来做一些判断之类的方法。
例如:name
字段的长度,格式之类的。下面是一个实例:
<?php
namespace App\Http\Middleware;
use Closure;
class GoodsCateAdd
{
/**
* [handle 添加商品分类]
* @author mr.zhou <zhouwei9280@gmail.com>
* @version 1.0.0
* @param $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ( empty($request->name) ) {
return jsonResponse('1', '分类名称不能为空'); // 这是我自己在 `Helpers/functions.php` 中自己定义的
}
if ( mb_strlen($request->name, 'utf-8') > 4 ) {
return jsonResponse('1', '分类名称不能大于4个字');
}
return $next($request);
}
}
第四步:在路由中使用你的中间件
Route::post('merch/addcate', 'GoodsCategoryController@addCategory')->name('addcate')->middleware('goods.category.add');
总结:我认为中间件就像是一个门卫,看守着要进入方法的所有请求。
由于第一次使用中间件,可能这并不是最好的使用方法,在一点就是文采不太好可能有一些没说清楚的地方,在这里对大家先说声抱歉。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: