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 协议》,转载必须注明作者和本文链接
自由飞
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!