如何在Laravel 5.4中實現中間件跳轉

laravel 5.4之前,我們可以使用中間件來實現跳轉功能。但是,laravel 5.4中間件的實現方式有所不同。在本文中,我們將討論如何在laravel 5.4中實現中間件跳轉。

一、在Laravel 5.4中實現中間件跳轉

在Laravel 5.4中,我們可以使用redirect()函數和with()函數來實現中間件跳轉。下面我們來看一個例子:

  1. 創建一個日志中間件

在app/http/Middleware目錄下,創建一個LogMiddleware.php文件,內容如下:

<?php  namespace AppHttpMiddleware;  use Closure; use IlluminateSupportFacadesLog;  class LogMiddleware {     public function handle($request, Closure $next)     {         Log::info('LogMiddleware');         return $next($request);     } }

上面的代碼創建了一個名為LogMiddleware的中間件,在handle函數中記錄了一條日志。

  1. 創建一個授權中間件

在app/Http/Middleware目錄下,創建一個AuthMiddleware.php文件,內容如下:

<?php  namespace AppHttpMiddleware;  use Closure;  class AuthMiddleware {     public function handle($request, Closure $next)     {         if (!auth()->check()) {             return redirect('/login')->with('error', '請先登錄!');         }          return $next($request);     } }

上面的代碼創建了一個名為AuthMiddleware的中間件,在handle函數中判斷用戶是否已登錄,如果未登錄,則跳轉到登錄頁面,并將錯誤信息保存到Session中。

  1. 將中間件注冊到路由中

在routes/web.php文件中,注冊路由和中間件,代碼如下:

Route::get('/dashboard', function () {     return view('dashboard'); })->middleware([LogMiddleware::class, AuthMiddleware::class]);

上面的代碼創建了一個名為dashboard的路由,在dashboard路由中,使用了LogMiddleware和AuthMiddleware中間件。

  1. 實現中間件跳轉

直接訪問http://yourdomain/dashboard頁面時,將會自動跳轉到http://yourdomain/login,并在session中保存有錯誤信息。

二、總結

在Laravel 5.4中,我們可以使用redirect()函數和with()函數來實現中間件跳轉。通過以上步驟,我們成功地實現了一個中間件跳轉功能。希望本文能對你有所幫助!

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享