laravel之路由简单架构

分清各个域名的职责

  • admin 后台
  • api 前端接口
  • web 默认首页
  • 路由文件如下,每个文件,不同的领域

 

新增一个路由服务提供者 app/provider/RouteServiceProvider

代码如下:

<?php

namespace App\Providers;

use Encore\Admin\Facades\Admin;
use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

class RouteServiceProvider extends ServiceProvider
{
    /**
     * This namespace is applied to your controller routes.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = 'App\Http\Controllers';

    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @return void
     */
    public function boot()
    {
        //

        parent::boot();
    }

    /**
     * Define the routes for the application.
     *
     * @return void
     */
    public function map()
    {
        $this->initMap();
    }

    protected function initMap()
    {
        $this->mapAdminRoutes();
        $this->mapApiRoutes();
        $this->mapWebRoutes();
    }
    /**
     * Define the "web" routes for the application.
     *
     * These routes all receive session state, CSRF protection, etc.
     *
     * @return void
     */
    protected function mapWebRoutes()
    {
        Route::middleware('web')
             ->namespace($this->namespace)
             ->group(base_path('routes/web.php'));
    }


    /**
     * Define the "api" routes for the application.
     *
     * These routes are typically stateless.
     *
     * @return void
     */
    protected function mapApiRoutes()
    {
        $apiConfig = config('app.route.api');
        Route::domain($apiConfig['domain'].'.'.$this->getBaseDomain())
            ->prefix($apiConfig['prefix'])
            ->namespace($apiConfig['namespace'])
            ->group(base_path('routes/api.php'));
    }


    /**
     * Define the "admin" routes for the application.
     *
     * These routes are typically stateless.
     *
     * @return void
     */
    protected function mapAdminRoutes()
    {
//        Admin::registerAuthRoutes();
        //后台路径
        $domain = config('admin.route.domain').'.'.$this->getBaseDomain();
        Route::domain($domain)
            ->prefix(config('admin.route.prefix'))
            ->namespace(config('admin.route.namespace'))
            ->middleware(config('admin.route.middleware'))
            ->group(base_path('routes/admin.php'));
        //后台登录权限路径
        Route::domain($domain)
            ->prefix(config('admin.route.prefix'))
            ->middleware(config('admin.route.middleware'))
            ->group(base_path('routes/adminAuth.php'));

    }

    //获取一级域名
    protected function getBaseDomain()
    {
        return config('app.base_domain');
    }

}
  • 注册服务提供者
最后在 config/app.php插入上面的路由服务提供者类名

'providers' => \App\Providers\RouteServiceProvider

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel框架的优势: 1. 简单易学:Laravel采用简洁的语法和优雅的代码,使得开发者可以快速学习和上手。 2. MVC结构:Laravel采用MVC架构,将应用程序的不同部分分离出来,使代码更加清晰、易于维护。 3. 强大的路由系统:Laravel路由系统可以方便地定义URL和HTTP请求方式,使得开发者可以更加灵活地构建Web应用。 4. 数据库迁移:Laravel提供了数据库迁移工具,可以方便地对数据库进行版本控制和管理。 5. 强大的ORM:Laravel内置的Eloquent ORM可以方便地进行数据库操作,使得开发者可以更加专注于业务逻辑。 6. 强大的模板引擎:Laravel内置的Blade模板引擎可以方便地进行页面渲染,使得开发者可以更加轻松地构建Web应用。 7. 丰富的拓展包:Laravel社区拥有丰富的拓展包,可以方便地引入第三方组件,使得开发者可以更加高效地开发Web应用。 Laravel框架的架构图: Laravel框架采用MVC架构,将应用程序的不同部分分离出来。以下是Laravel框架的架构图: 1. 路由器(Router):负责接收HTTP请求并将其转发给对应的控制器。 2. 控制器(Controller):负责处理业务逻辑,从模型中获取数据并将其传递给视图。 3. 模型(Model):负责与数据库进行交互,从数据库中获取数据并将其传递给控制器。 4. 视图(View):负责渲染页面并将数据呈现给用户。 5. 模板引擎(Template Engine):Laravel使用Blade作为模板引擎,可以方便地渲染页面。 6. 数据库(Database):Laravel支持多种数据库,包括MySQL、PostgreSQL等。 7. Eloquent ORM:Laravel内置的Eloquent ORM可以方便地进行数据库操作,使得开发者可以更加专注于业务逻辑。 8. Artisan命令行工具:Laravel提供了Artisan命令行工具,可以方便地进行代码生成、数据库迁移等操作。 9. Composer:Laravel采用Composer作为依赖管理工具,可以方便地引入第三方组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值