Laravel 路由总结

路由是进入项目代码中的一个入口(另一个是控制台),看官方文章有很多介绍,其实实际项目中需要你把这些总结一下然后再拿来用,这边文章主要介绍路由实战,喜欢的或者有帮助的别忘了打赏,当然更重要的是为开源项目做贡献,哈哈废话不多说。

Route::group(['namespace' => 'FrontEnd', 'prefix' => 'web', 'middleware' => ['auth_user']], function () {
   Route::post('/index/{id?},'indexController@index')->name('web.index');
     };

然后我们详细的讲述下,group () 里面为数组,namespace 代表该路由分组下面所有控制器的命名空间,prefix 为 url 前缀比如:http://www.onefly.shop/web/index , middleware 为中间件(可用来控制会员是否登录,未登录直接跳转登录页)。
{id?} 为 get 传值参数 应该拼接 url 路径为 http://www.onefly.shop/web/index/1 ,(id 换为 1),此时控制器

public function index($id){ return $id};  

->name () 为路由别名,你可以在视图直接 {{route ('web.index',['id'=>1]}} 来访问路由,一般建议起别名。至此路由基本用法已经介绍完了,接下来梳理下官方文档其他很少用的方法
路由重定向: Route::redirect ('/here', '/there', 301);
视图路由: Route::view ('/welcome', 'welcome', ['name' => 'Taylor']); 第三个参数给视图传值 可选;
方法中跳转路由: return redirect ()->route ('profile');
方法中获取路由信息:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();

路由配置子域名:
如果一个项目中你想前台和后台以及其它台配置不同的域名
首先在 .env 文件中配置

    WEB_DOMAIN= 'web.test.com'
    ADMAIN_DOMAIN='admin.test.com'

在 RouteServiceProvider.php 路由服务提供者

 protected function mapWebRoutes()
 {
    Route::domain(env('WEB_DOMAIN'))      //这是要添加的domain方法
        ->middleware('web')
        ->namespace($this->namespace)
        ->group(base_path('routes/web.php'));
 }

      protected function mapAdminRoutes()
 {
    Route::domain(env('ADMIN_DOMAIN'))   //这是要添加的domain方法
        ->middleware('admin')
        ->namespace($this->namespace)
        ->group(base_path('routes/admin.php'));
 }

这样在 apache 或者 nginx 中配置前台和后台的域名指定到 public 目录,只要访问不同域名就可以访问不同的路由文件;
如果想自己生成的路由文件配置域名,只需要在 RouteServiceProvider.php 中 map () 函数中添加,其他复制上面即可。

至此路由能所能用到这就这些了,如果看管有更好的欢迎留言我会及时补充。
如果这篇文章给与你很大的帮助请点个赞或者随意打赏,让我感觉你的存在,哈哈!
原创,如果转载请标明出处,否则承担相应的责任;

本作品采用《CC 协议》,转载必须注明作者和本文链接
自由飞
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。