Laravel ist derzeit das am weitesten verbreitete PHP-Webframework. Seine Anmeldefunktion wird sehr häufig verwendet, und das Springen zur angegebenen Seite nach erfolgreicher Anmeldung ist ebenfalls eine der häufigsten Anforderungen. In diesem Artikel wird detailliert beschrieben, wie die Sprungfunktion nach der Anmeldung in Laravel implementiert wird.
Wenn Sie Laravel nicht installiert haben, können Sie die folgenden Schritte ausführen, um es zu installieren:
composer global require laravel/installer
composer global require laravel/installer
laravel new project_name
cd project_name
php artisan serve
在本文中,我们将使用默认配置进行开发,如果您使用了其他配置,可能会稍有不同。
在 Laravel 中实现登录功能非常简单,只需要使用 Auth
中间件即可。在 routes/web.php
文件中增加以下路由:
Route::get('/login', 'LoginController@showLoginForm')->name('login'); Route::post('/login', 'LoginController@login');
这两个路由分别对应登录页面的显示和登录操作的处理。其中,LoginController@showLoginForm
方法用于显示登录表单,LoginController@login
方法用于处理用户提交的登录请求。
如果您还没有创建 LoginController
,可以通过以下命令快速创建:
php artisan make:controller LoginController
在 LoginController
中,可以使用 Laravel 提供的 AuthenticatesUsers
trait 快速实现登录功能。只需要在类中引入此 trait 即可:
use AuthenticatesUsers; public function __construct() { $this->middleware('guest')->except('logout'); }
默认情况下,登录成功后会跳转到 /home
页面,可以在 AuthLoginController
中修改 $redirectTo
属性来指定用户登录成功后跳转的页面。
protected $redirectTo = '/dashboard';//修改为你要跳转的路径
在 Laravel 中实现登录后跳转也非常简单,只需要在登录控制器中修改 $redirectTo
属性即可。但是,如果您希望登录成功后跳转到用户之前访问的页面,那么需要进行以下操作:
RedirectIfAuthenticated
中间件在 app/Http/Middleware
目录下创建 RedirectIfAuthenticated.php
文件,并添加以下代码:
<?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); } }
代码中的 intended
方法会尝试将用户重定向到他们最初请求页面的位置,如果没有先前的位置,则默认重定向到指定的路径。
app/Http/Kernel.php
中注册中间件在 app/Http/Kernel.php
文件中的 $routeMiddleware
数组中注册新增的中间件:
protected $routeMiddleware = [ // ... 其他中间件省略 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, ];
在登录控制器中,将登录成功后重定向的目标地址修改为 intended
方法,即可实现登录后跳转到用户之前访问的页面:
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); }
在本文中,我们学习了在 Laravel 中实现登录后跳转需要进行哪些操作。首先,我们需要使用 Auth
中间件实现登录功能。然后,我们通过修改登录控制器中的 $redirectTo
Neues Projekt erstellen: laravel neuer Projektname
cd Projektname
Starten Sie den integrierten Laravel-Server: php artisan dienen
Auth
. Fügen Sie der Datei routes/web.php
die folgenden Routen hinzu: 🎜rrreee🎜Diese beiden Routen entsprechen der Anzeige der Anmeldeseite bzw. der Verarbeitung des Anmeldevorgangs. Unter anderem wird die Methode LoginController@showLoginForm
zum Anzeigen des Anmeldeformulars und die Methode LoginController@login
zum Verarbeiten der vom Benutzer übermittelten Anmeldeanforderung verwendet. 🎜🎜Wenn Sie noch keinen LoginController
erstellt haben, können Sie ihn schnell mit dem folgenden Befehl erstellen: 🎜rrreee🎜In LoginController
können Sie den AuthenticatesUsers verwenden
bereitgestellt von Laravel Das Merkmal implementiert schnell die Anmeldefunktion. Führen Sie einfach dieses Merkmal in der Klasse ein: 🎜rrreee🎜Standardmäßig springen Sie nach erfolgreicher Anmeldung zur Seite /home
, die in AuthLoginController
>$redirectTo geändert werden kann -Attribut, um die Seite anzugeben, zu der der Benutzer nach erfolgreicher Anmeldung springen soll. 🎜rrreee🎜3. Einen Sprung nach der Anmeldung implementieren🎜🎜Es ist auch sehr einfach, einen Sprung nach der Anmeldung in Laravel zu implementieren. Sie müssen nur das Attribut $redirectTo
im Login-Controller ändern. Wenn Sie jedoch nach erfolgreicher Anmeldung zu der Seite springen möchten, die der Benutzer zuvor besucht hat, müssen Sie Folgendes tun: 🎜🎜🎜Erstellen Sie die Middleware RedirectIfAuthenticated
🎜In Erstellen Sie die Datei <code>RedirectIfAuthenticated.php
im Verzeichnis app/Http/Middleware und fügen Sie den folgenden Code hinzu: 🎜rrreee🎜Die intended
-Methode im Code wird es versuchen um den Benutzer an den Ort umzuleiten, an dem er die Seite ursprünglich angefordert hat, oder es wird standardmäßig der angegebene Pfad verwendet, wenn kein vorheriger Ort vorhanden ist. 🎜app/Http/Kernel.php
app/Http/Kernel.php Registrieren Sie die neue Middleware im Array <code>$routeMiddleware
in der Datei: 🎜rrreeebeabsichtigt
, damit Sie nach der Anmeldung zu der Seite springen können, die der Benutzer zuvor besucht hat: 🎜rrreeerrreee🎜🎜In diesem Artikel haben wir gelernt Welche Vorgänge sind erforderlich, um einen Sprung nach der Anmeldung in Laravel zu implementieren? Zuerst müssen wir die Middleware Auth
verwenden, um die Anmeldefunktion zu implementieren. Anschließend implementieren wir den Sprung nach der Anmeldung, indem wir das Attribut $redirectTo
im Login-Controller ändern. Schließlich erstellen wir Middleware und ändern den Code im Login-Controller, um nach der Anmeldung zu der Seite zu springen, die der Benutzer zuvor besucht hat. 🎜🎜Ich hoffe, dieser Artikel kann Ihnen dabei helfen, die Post-Login-Sprungfunktion in Laravel einfach zu implementieren! 🎜Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Sprungfunktion nach der Anmeldung in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!