Laravel は現在最も広く使用されている PHP Web フレームワークであり、そのログイン機能は非常によく使用されており、ログイン成功後に指定されたページにジャンプすることも共通の要件の 1 つです。この記事では、Laravelでログイン後のジャンプ機能を実装する方法を詳しく紹介します。
Laravel をインストールしていない場合は、次の手順に従ってインストールできます:
composer global require laravel/installer
laravel new project_name
cd project_name
php 職人サーブ
この記事では、開発にデフォルトの構成を使用します。他の構成を使用している場合は、デフォルトの構成が使用される可能性があります。わずかに異なります。
Laravel でログイン関数を実装するのは非常に簡単で、Auth
ミドルウェアを使用するだけです。次のルートを routes/web.php
ファイルに追加します。
Route::get('/login', 'LoginController@showLoginForm')->name('login'); Route::post('/login', 'LoginController@login');
これら 2 つのルートは、それぞれログイン ページの表示とログイン操作の処理に対応します。このうち、LoginController@showLoginForm
メソッドはログイン フォームの表示に使用され、LoginController@login
メソッドはユーザーによって送信されたログイン要求の処理に使用されます。
LoginController
を作成していない場合は、次のコマンドを使用してすぐに作成できます。
php artisan make:controller LoginController
LoginController
では、# を使用できます。 # Laravel によって提供される #AuthenticatesUsers トレイトはログイン機能を迅速に実装します。この特性をクラスに導入するだけです:
use AuthenticatesUsers; public function __construct() { $this->middleware('guest')->except('logout'); }
Auth\LoginController## にある /home
ページにジャンプします。 #$redirectTo
属性を変更して、ログイン成功後にユーザーがジャンプするページを指定します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">protected $redirectTo = '/dashboard';//修改为你要跳转的路径</pre><div class="contentsignin">ログイン後にコピー</div></div>
3. ログイン後のジャンプの実装
属性を変更するだけです。ログイン コントローラー。ただし、ログインに成功した後にユーザーが以前にアクセスしたページにジャンプしたい場合は、次の操作を行う必要があります:
ディレクトリに RedirectIfAuthenticated.php
ファイルを作成し、次のコードを追加します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
class RedirectIfAuthenticated
{
public function handle(Request $request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect()->intended('/dashboard');//修改为登录成功后要跳转的路径
}
return $next($request);
}
}</pre><div class="contentsignin">ログイン後にコピー</div></div># の
intended
にミドルウェアを登録します。ファイルの $routeMiddleware
配列に新しいミドルウェアを追加します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">protected $routeMiddleware = [
// ... 其他中间件省略
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
];</pre><div class="contentsignin">ログイン後にコピー</div></div>
protected $redirectTo = '/dashboard';//删除这行
public function login(Request $request) { $this->validateLogin($request); if ($this->attemptLogin($request)) { // 登录成功后跳转到用户之前访问的页面 return redirect()->intended('/dashboard'); } $this->incrementLoginAttempts($request); return $this->sendFailedLoginResponse($request); }
4 にジャンプできる intended
メソッドに変更されます。 Laravel でログイン後のジャンプを実装するにはどのような操作が必要かを学びました。まず、
属性を変更して、ログイン後のジャンプを実装します。最後に、ミドルウェアを作成し、ログイン後にユーザーが以前にアクセスしたページにジャンプするようにログイン コントローラーのコードを変更します。 この記事が、Laravel でログイン後ジャンプ機能を簡単に実装するのに役立つことを願っています。
以上がlaravelでログイン後のジャンプ機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。