小白学习记1

多模块之路由怎么搞

一套代码里有后端有前端有接口的,一堆路定义由写在routes/web.php里会显得臃肿且不方便管理
那就分开写
1.routes/新建*.PHP。 例如我要搞个test模块,新建routes/ttes.php,内容:

<?php
Route::get('/ttt', 'TestController@index');

2.修改
app/Providers/RouteServiceProvider.php

 public function map()
 {
         ...
        //添加
        $this->mapTTesRoutes();    
 }
//新建方法 用来定义模块的路由关系啥的
 protected function mapTTesRoutes()
 {
        Route::prefix('/Ttes')//前缀浏览器路径主要靠他区别模块的
            ->namespace($this->namespace . '\Ttes') // 新模块的文件位置
            ->group(base_path('routes/Ttes.php')); //1.里创建的那个路由文件
 }

3.新模块里写逻辑吧
我的项目结构,Ttes就是咱新搞得模块:

小白学习记1

TestController.php
<?php
namespace App\Http\Controllers\Ttes;
use App\Http\Controllers\BaseController;
class TestController extends BaseController
{
    public function index()
    {
        return __("8");
    }
}

4.访问 域名/Ttes/ttt

小白学习记1

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 5
sanders

我们可能会在 web.php 里面 include('ttes.php'),group 之类的逻辑都在 ttes.php 里面定义。你也不想 RouteServiceProvider.php 文件变得过于臃肿吧?

1年前 评论
Imuyu 1年前

这么做没什么问题,官方有示例,api.php就是例子。

1年前 评论

你可以 web路由使用 web.php , api路由使用 api.php。 然后使用 namespace 区分版本。 比如 Route::namespace('api.v1');

1年前 评论

现在还有小白学php?

1年前 评论

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