簡體   English   中英

Laravel成功登錄后如何更改登錄頁面?

[英]How can I change the landing page after a success Laravel login?

我絕對是Laravel的新手 ,但我遇到以下問題。 我正在使用Laravel 5.3

當我從登錄頁面執行登錄時,它會自動將我帶到該主頁上:

http://localhost:8000/home

我的疑問是:成功登錄后如何更改登錄頁面?

我有以下路線:

Andrea@Andrea-PC MINGW64 ~/Documents/Betrivius/WorkSpace/betriviusExtranet (master)
$ php artisan route:list
+--------+----------+------------------------+----------+------------------------------------------------------------------------+--------------+
| Domain | Method   | URI                    | Name     | Action                                                                 | Middleware   |
+--------+----------+------------------------+----------+------------------------------------------------------------------------+--------------+
|        | GET|HEAD | /                      |          | App\Http\Controllers\LoginBetriviusController@index                    | web          |
|        | GET|HEAD | api/user               |          | Closure                                                                | api,auth:api |
|        | POST     | doLogin                |          | App\Http\Controllers\LoginBetriviusController@doLogin                  | web          |
|        | GET|HEAD | home                   |          | App\Http\Controllers\HomeController@index                              | web,auth     |
|        | POST     | login                  |          | App\Http\Controllers\Auth\LoginController@login                        | web,guest    |
|        | GET|HEAD | login                  | login    | App\Http\Controllers\Auth\LoginController@showLoginForm                | web,guest    |
|        | POST     | logout                 | logout   | App\Http\Controllers\Auth\LoginController@logout                       | web          |
|        | POST     | password/email         |          | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail  | web,guest    |
|        | GET|HEAD | password/reset         |          | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest    |
|        | POST     | password/reset         |          | App\Http\Controllers\Auth\ResetPasswordController@reset                | web,guest    |
|        | GET|HEAD | password/reset/{token} |          | App\Http\Controllers\Auth\ResetPasswordController@showResetForm        | web,guest    |
|        | GET|HEAD | register               | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm      | web,guest    |
|        | POST     | register               |          | App\Http\Controllers\Auth\RegisterController@register                  | web,guest    |
+--------+----------+------------------------+----------+------------------------------------------------------------------------+--------------+

因此,我嘗試修改LoginController (與App \\ Http \\ Controllers \\ Auth命名空間相關),將其值更改為:

protected $redirectTo = '/home';

至:

protected $redirectTo = '/dashboard-hotel';

其中dashboard-hotel代表成功登錄后要打開的dashboard-hotel.php視圖。

但是以這種方式,我會收到以下錯誤消息:

NotFoundHttpException in RouteCollection.php line 161:
in RouteCollection.php line 161
at RouteCollection->match(object(Request)) in Router.php line 766
at Router->findRoute(object(Request)) in Router.php line 621
at Router->dispatchToRoute(object(Request)) in Router.php line 607
at Router->dispatch(object(Request)) in Kernel.php line 268
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104
at Pipeline->then(object(Closure)) in Kernel.php line 150
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 117
at Kernel->handle(object(Request)) in index.php line 54
at require_once('C:\Users\Andrea\Documents\Betrivius\WorkSpace\betriviusExtranet\public\index.php') in server.php line 21

這是我的/routes/web.php文件內容:

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| This file is where you may define all of the routes that are handled
| by your application. Just tell Laravel the URIs it should respond
| to using a Closure or controller method. Build something great!
|
*/

Route::get('/', 'LoginBetriviusController@index');

Route::post('/doLogin', 'LoginBetriviusController@doLogin');

Auth::routes();

Route::get('/home', 'HomeController@index');

那么,怎么了? 我想念什么? 如何解決此問題?

  1. 添加Route::get('/dashboard-hotel', 'DashboardHotelController@index'); 到您的/routes/web.php

  2. app / Http / Controllers中創建一個名為DashboardHotelController.php的文件

  3. 將此內容放在那里

 <?php namespace App\\Http\\Controllers; class DashboardHotelController extends Controller { /** * Create a new controller instance. * DashboardHotelController constructor. */ public function __construct() { $this->middleware('auth'); } /** * Show the application dashboard. * @return \\Illuminate\\Http\\Response */ public function index() { return view('dashboard-hotel'); } } 
  1. 在您的resources / views文件夾中創建一個名為dashboard-hotel.blade.php的文件

  2. 在此處編寫您的HTML /刀片代碼

  3. 不要忘記打開終端並輸入composer dump-autoload -o

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM