laravel的routes里写Route::和$router->有什么区别吗?

看别人的代码里好像很多用$router->的,看手册里好像都是Route::,这俩方式有什么区别吗?

阅读 6.3k
2 个回答

Route::get这种写法在laravel里叫做Facades,本义是为了写起来方便而造出来的。

它等价于$app->make('router')->get;

也是从服务容器里取出来的,提供路由服务的是 App\Providers\RouteServiceProvider

如果你通过依赖注入里拿到$router那么,它也等价于$app->make('router'),也等价于Route::这个Facades

你可以参考一下Facades的文档理解一下
http://laravel.com/docs/5.2/facades

Route::get这种静态调用使用了魔术方法__callStatic构造出来的。本质上是Router->get,相当于别名,没啥区别。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进