Laravel多路由文件,路由分组

现在用的是laravel 5.5,不管是api接口还是web直接渲染,都能很好的应对,api端的登陆验证可以使用passport,web短的直接使用自带的,这个大问题解决了就可以狠狠地放下dingo和jwt了,他们已经out了。今天来说说laravel的路由分割。在laravel5.5中,路由文件分为两个,一个web.php一个api.php,你想象一下,如果需要进行版本迭代,你的路由文件是不是会很庞大,而且不同版本的写在一起,这样本身就会很乱。既然laravel已经分成了两个路由文件,那肯定可以裂变更多的出来!要是可以不同的版本,都来个路由文件,那就太好了!
呵呵,你别说,还真的可以这么干!我们看看provider目录下面,那些个文件都是和服务启动相关的,不能瞎改,我们进去会发现有这个文件,他就是启动路由的。

D:\phpStudy\WWW\BCCKidV1.0\app\Providers\RouteServiceProvider.php

一进去就看到这个代码,这个是不是引起了你的兴趣?看到没?那个地方还特意划了两个斜杠,意思是只要你愿意,还可以使劲加。

public function map()
{
    $this->mapApiRoutes();

    $this->mapWebRoutes();

    //
}

继续往下看,就看到下面两个方法,这一看应该都明白了吧?直接在routes下面加你想要的路由文件,然后写到这里来就行了,还可以定义前缀和中间件。是不是爽歪了?

protected function mapWebRoutes()
{
    Route::middleware('web')
         ->namespace($this->namespace)
         ->group(base_path('routes/web.php'));
}

protected function mapApiRoutes()
{
    Route::prefix('api')
         ->middleware('api')
         ->namespace($this->namespace)
         ->group(base_path('routes/api.php'));
}

laravel越来越懂程序员了,大爱!


更新一下,在laravel5.5.43里面,我尝试添加多个路由文件的时候,一直报下面这个错误,原因是

Route::prefix('api')得到的是一个string,正确的做法是把prefix放到middleware的后面去
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Call to a member function middleware() on string
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SHUIPING_YANG

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值