首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在laravel 5中多个路由文件而不是一个主路由文件

在laravel 5中多个路由文件而不是一个主路由文件
EN

Stack Overflow用户
提问于 2015-12-09 15:36:41
回答 8查看 43.6K关注 0票数 12

我是用Laravel 5开发网络的新手,我安装了asGgardCMS,在看到asgardCms代码之后,我发现app/Http/route.php文件中没有任何代码,路由所需的代码被放置在模块代码中。例如,路由菜单管理器模块所需的代码放在Modules/Media/apiRoutes.php和Modules/Media/backendRoutes.php文件中。也许能帮我,告诉我怎样才能像那样管理我的路线?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-12-09 16:17:11

可以在服务提供程序中加载自定义路由文件。AsgardCMS也是这样做的,请参阅加载后端路由的核心RoutingServiceProvider中的此方法:

https://github.com/AsgardCms/Core/blob/master/Providers/RoutingServiceProvider.php#L77

Laravel文档在包开发部分提供了一个简单的示例:

http://laravel.com/docs/5.1/packages#routing

票数 3
EN

Stack Overflow用户

发布于 2018-12-23 03:22:59

Laravel的路由上的group()方法可以接受文件名,所以我们可以这样做:

代码语言:javascript
复制
// web.php

Route::prefix('admin')
    ->group(base_path('routes/admin.php'));

// admin.php
Route::get('/', 'AdminController@index');
票数 14
EN

Stack Overflow用户

发布于 2015-12-09 17:48:18

  1. 创建2个路由文件routes.web.phproutes.api.php
  2. 编辑RouteServiceProvider.php文件如下所示:
代码语言:javascript
复制
<?php

namespace App\Providers;

use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Routing\Router;

class RouteServiceProvider extends ServiceProvider
{

    /**
     * This namespace is applied to the controller routes in your routes file.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $webNamespace = 'App\Http\Controllers\Web';

    protected $apiNamespace = 'App\Http\Controllers\Api';

    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @param  \Illuminate\Routing\Router $router
     *
     * @return void
     */
    public function boot(Router $router)
    {
        //

        parent::boot($router);
    }

    /**
     * Define the routes for the application.
     *
     * @param  \Illuminate\Routing\Router $router
     *
     * @return void
     */
    public function map(Router $router)
    {

        /*
        |--------------------------------------------------------------------------
        | Web Router 
        |--------------------------------------------------------------------------
        */

        $router->group(['namespace' => $this->webNamespace], function ($router) {
            require app_path('Http/routes.web.php');
        });

        /*
        |--------------------------------------------------------------------------
        | Api Router 
        |--------------------------------------------------------------------------
        */

        $router->group(['namespace' => $this->apiNamespace], function ($router) {
            require app_path('Http/routes.api.php');
        });

    }
}

注意:您可以添加任意数量的路由文件.

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34182806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档