要達到這個目標,有兩個步驟,需要修改兩個檔案。
步驟一
在專案資料夾中,找到以下檔案。
app\Http\Middleware\RedirectIfAuthenticated.php
這是負責導向驗證頁面的middleware檔案
原版的函式如下:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect(RouteServiceProvider::HOME);
}
return $next($request);
}
修改版的函式如下:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
// return redirect(RouteServiceProvider::HOME);
// 上面是原版
return redirect()->intended('/');
}
return $next($request);
}
對照圖如下,藍色底線是原版的程式碼,橘色底線是新增的程式碼。
Learn More →
步驟二
在專案資料夾中找到以下檔案。
app\Http\Controllers\Auth\LoginController.php
這是負責管理登陸的controller檔案。
這個檔案不需要修改原本的程式碼,而是將程式碼新增到裡面,一般新增到最下面。
要記得這段程式碼還是被class{}包起來的,然後要加上註解幫助你記憶跟辨認。
// 下面是新程式碼,可以實現在哪個頁面按登入按鈕,就可以在登入後回到那個頁面。
public function showLoginForm()
{
// Get URLs
$urlPrevious = url()->previous();
$urlBase = url()->to('/');
// Set the previous url that we came from to redirect to after successful login but only if is internal
if(($urlPrevious != $urlBase . '/login') && (substr($urlPrevious, 0, strlen($urlBase)) === $urlBase)) {
session()->put('url.intended', $urlPrevious);
}
return view('auth.login');
}
好了,這樣就大功告成了,去試試看吧。
laravel
laravel.7
這是當頁的網址 當要連結的a標籤連結為 這個開頭沒有斜線"/" 則網址扣除當分頁累加($item與新連結視為同階分支) 如果有斜線"/" 則導向該網址
Mar 7, 2022在前端送資料到後端的時候 很多格式是有可能被串改的 因此在使用獲得的資料前 要先做驗證的動作 Laravel就有提供驗證的功能 https://laravel.com/docs/8.x/validation 直接舉例 將接收到的$request直接送入驗證
Mar 3, 2022Laravel 版本7~8.X 00.專案基本知識與指令 01.在哪一頁登入,就回到哪一頁 02.好用的Blade語法實例1 用@auth/@endauth實現部分頁面權限 03.好用的Blade語法實例1 居然遇到報錯 04.好用的Blade語法實例2 只有發布者才能編輯與刪除他發布的文章
Feb 17, 2022為了讓共筆者可以更好的新增及查找問題,以這個目錄為主要依據。 舉凡是: :::success 1.單純想分享自己搞懂的新東西 2.覺得這個技巧需要會,但就是不會 3.想學會某個外掛/套件 4.不懂這個程式碼在寫什麼
Feb 9, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up