在近幾天即將釋出Laravel 5.5中,路由新增了兩個特別實用的特性view
和redirect
。
Route::view
想必有些時候你的網站有非常簡單的路由只返回一個檢視,這個時候你可能會寫一個controller
函式來返回檢視或者用閉包直接返回檢視,如Route::get('/home', function(){ return view('home'); });
。可是問題來了,再寫一個控制器函式很麻煩,而且你需要跳轉過去才能知道這條路由是返回哪一個檢視。可是如果用閉包的話你就不能快取路由,這對網站效能影響很大。所以為了解決這個問題,Laravel 5.5新增了Route::view
方法,為某個路由直接返回檢視,且能夠被快取。
用法
Route::view('/home', 'home', [
'foo' => 'bar',
])
第一個引數是路由,第二個是需返回的檢視,第三個是傳遞給檢視的引數。
Route::redirect
想必你也能猜到這個方法的作用,就是做網址的跳轉。你不必在自己寫redirect()
邏輯。
用法
Route::redirect('home', 'dashboard', 301)
第一個引數是路由,第二個引數是你想跳轉的網址,第三個引數是返回的 HTTP 狀態碼,某些時候你可能會想用301來標記此路由已經永久改變網址。
原理
其實這兩個方法底層都是在框架裡面預先寫好了ViewController
和RedirectController
,來處理返回檢視和跳轉。這樣就能使路由被快取。具體實現可以檢視對應 controller
檔案。
本作品採用《CC 協議》,轉載必須註明作者和本文連結