Laravel 5.4でミドルウェアジャンプを実装する方法

PHPz
リリース: 2023-04-23 09:59:08
オリジナル
652 人が閲覧しました

Laravel 5.4 より前では、ミドルウェアを使用してジャンプ関数を実装できました。ただし、Laravel 5.4 ミドルウェアの実装方法は異なります。この記事では、Laravel 5.4 でミドルウェア ジャンプを実装する方法について説明します。

1. 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 という名前のミドルウェアを作成し、ハンドル関数にログを記録します。

  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);
    }
}
ログイン後にコピー

Aboveこのコードは、AuthMiddleware という名前のミドルウェアを作成し、ハンドル関数でユーザーがログインしているかどうかを判断し、ログインしていない場合はログイン ページにジャンプし、エラー情報をセッションに保存します。

  1. ミドルウェアをルートに登録します

routes/web.php ファイルにルートとミドルウェアを登録します。コードは次のとおりです:

Route::get('/dashboard', function () {
    return view('dashboard');
})->middleware([LogMiddleware::class, AuthMiddleware::class]);
ログイン後にコピー

上記のコードは、ダッシュボードという名前のルートを作成します。ダッシュボード ルートでは、LogMiddleware および AuthMiddleware ミドルウェアが使用されます。

  1. ミドルウェア ジャンプの実装

http://yourdomain/ダッシュボード ページに直接アクセスすると、自動的に http://yourdomain/login にジャンプします。セッションに保存されたエラー情報です。

2. 概要

Laravel 5.4 では、redirect() 関数と with() 関数を使用してミドルウェア ジャンプを実装できます。以上の手順でミドルウェアジャンプ機能を実装することができました。この記事があなたのお役に立てば幸いです!

以上がLaravel 5.4でミドルウェアジャンプを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート