首頁 >php框架 >Laravel >如何在Laravel 5.4中實現中間件跳轉

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

PHPz
PHPz原創
2023-04-23 09:16:21693瀏覽

在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 App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Log;

class LogMiddleware
{
    public function handle($request, Closure $next)
    {
        Log::info(&#39;LogMiddleware&#39;);
        return $next($request);
    }
}

上面的程式碼建立了一個名為LogMiddleware的中間件,在handle函數中記錄了一則日誌。

  1. 建立一個授權中間件

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

<?php

namespace App\Http\Middleware;

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()函數來實現中間件跳轉。透過以上步驟,我們成功地實現了一個中間件跳轉功能。希望本文能對你有幫助!

以上是如何在Laravel 5.4中實現中間件跳轉的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn