例如我的url 有1个参数id是加密过的,要用中间件解密的话,没有找到相关接口。只能到控制器里解密,很麻烦的。希望支持。
laravel 是支持的,解密后,送回路由里
参考:
public function handle(Request $request, Closure $next, ...$parameter)
{
$router = Route::current();
$parameterNames = $router->parameterNames();
if ($parameterNames) {
if (! empty($parameter)) {
foreach ($parameter as $v) {
$this->decodeParameter($router, $v);
}
} else {
foreach ($parameterNames as $v) {
$this->decodeParameter($router, $v);
}
}
}
return $next($request);
}
private function decodeParameter($router, $parameterName)
{
if ($router->hasParameter($parameterName)) {
$code = $router->parameter($parameterName);
$decode_id = CCommon::hashids_decode_id($code);
if (is_false($decode_id)) {
abort(404);
}
$router->setParameter($parameterName, $decode_id);
}
}
public function handle(Request $request, Closure $next, ...$parameter)
没看明白,参数是如何传进去的?