[笔记]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 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

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

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

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