[笔记]laravel动态匹配路由的实现

当路由是根据后台配置或数据库动态生成时,可以直接在路由文件使用循环来创建。
例如:我建了一个多网站的系统,每个网站都有首页、列表页、详情页,但是如何根据url来区分不同的网站。

在web.php中增加路由

$list=['web1'=>'网站1','web2'=>'网站2'];//网站列表,每个网站都有一个标识。
foreach ($list as $key=>$val){ 
     Route::namespace('Web')->prefix($key)->group(function () use ($key){
        Route::get('/',ucwords($key).'Controller@index');
        Route::get('/index',ucwords($key).'Controller@index');
        Route::get('/list',ucwords($key).'Controller@list');
        Route::get('/info',ucwords($key).'Controller@info');
     });
}

这样当访问 /web1 就会执行 App\Http\Web\Web1Controller中的index方法。

本作品采用《CC 协议》,转载必须注明作者和本文链接
流年的旧吉他,弹不出时光的悲伤;慧极必伤,情深不寿
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

直接切换 Route::namespace('Web') 不是更好吗?为啥非要改控制器?

3年前 评论
李先生 (楼主) 3年前

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