Laravel 9创建自定义中间件示例
#php #codenewbie #laravel9 #middleware

在本文中,我们将看到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