PHP:laravel中间件和控制器的请求参数传递与获取
// 在 Laravel 中定义一个中间件
namespace App\Http\Middleware;
use Closure;
class CheckAge
{
/**
* 处理传入的请求。
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$age = $request->input('age');
if ($age < 18) {
return redirect('home'); // 如果年龄小于18,重定向到home页面
}
return $next($request); // 如果年龄大于等于18,继续请求处理
}
}
// 在 app/Http/Kernel.php 中注册中间件
protected $routeMiddleware = [
// ...
'check.age' => \App\Http\Middleware\CheckAge::class,
];
// 在路由中使用中间件
Route::get('profile', function () {
// 通过依赖注入获取请求实例
})->middleware('check.age');
// 在控制器中使用中间件
public function __construct()
{
$this->middleware('check.age');
}
// 在控制器的方法中获取请求参数
public function show(Request $request)
{
$age = $request->input('age'); // 获取请求参数
// ...
}
这个例子展示了如何在 Laravel 中创建一个简单的中间件来检查请求中的参数,并根据参数重定向用户或继续请求处理。同时,展示了如何在路由和控制器中注册和使用这个中间件。
评论已关闭