Laravel 5.5 路由新特性
在近几天即将发布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 协议》,转载必须注明作者和本文链接
本帖由 Summer
于 7年前 加精
实用新功能.赞
可以可以