在本文中,我们将看到Laravel 9创建自定义中间件示例。
在这里,我们将了解如何在Laravel 9中创建中间件以及如何在Laravel 9中使用中间件。
Laravel中间件提供了一个方便的机制,用于检查和过滤HTTP请求输入您的应用程序。
例如,Laravel包括一个验证应用程序用户的中间件。
如果未对用户进行身份验证,则中间件将将用户重定向到您的应用程序的登录屏幕。如果用户经过身份验证,则中间件将允许请求进一步进入应用程序。
如果您的项目有多个用户,那么我们需要使用中间件为不同的用户提供不同的访问或登录。
所以,让我们看看如何在Laravel 9,Laravel 9自定义中间件中创建自定义中间件。
在此示例中,我们创建了“ roletype”中间件,我们将在路由运行时仅在路由上使用它,您必须通过“ type”参数,然后您可以在下面的下面访问这些请求演示链接。
http://localhost:8000/check/role?type=user
http://localhost:8000/check/role?type=admin
步骤1:创建中间件
在此步骤中,我们将创建自定义中间件。因此,在终端中运行以下命令并创建中间件。
php artisan make:middleware RoleType
Read Also: How To Create Barcode Generator In Laravel 9
运行上述命令后,创建了roletype.php。
app/http/middleware/roletype.php
<?php
namespace App\Http\Middleware;
use Closure;
class RoleType
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->type != 'admin') {
return response()->json('You do not have access!!');
}
return $next($request);
}
}
步骤2:在内核文件上注册中间件
现在,我们必须在内核文件上注册角色类型中间件。
app/http/kernel.php
protected $routeMiddleware = [
...
'roleType' => \App\Http\Middleware\RoleType::class,
];
步骤3:添加路线
现在,添加路由并在路由中添加RoleType中间件。另外,您可以将中间件添加到一组路线。
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('check/role',[UserController::class,'checkRole'])->middleware('roleType');
步骤4:添加控制器
在此步骤中,我们将使用Checkrole函数创建USERCONTROLLER。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function checkRole()
{
dd('checkRole');
}
}
Read Also: How To Upload Image In Summernote Editor In Laravel 9
现在是时候运行此示例了。将以下链接添加到您的URL并获取输出。
http://localhost:8000/check/role?type=user
http://localhost:8000/check/role?type=admin