laravel实现前后台路由分离的方法


Posted in PHP onOctober 13, 2019

当我们把路由写到一个文件中时,路由显得杂乱不堪,不利于维护,这时我们需要将laravel路由进行分离

实现步骤:

1、首先在app/Https/Controlles/文件下建立 Frontend(前端) Backend(后端) API(接口) 文件

2、在app/Https/建立对应的路由文件

laravel实现前后台路由分离的方法

3、打开app/Providers/RouteServiceProvider.php 定义各个功能对应的路由文件

laravel实现前后台路由分离的方法

代码如下:

<?php
 
namespace App\Providers;
 
use Illuminate\Routing\Router;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
 
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 $namespace = 'App\Http\Controllers';
 protected $backendNamespace;
 protected $frontendNamespace;
 protected $apiNamespace;
 protected $currentDomain;
 
 /**
 * Define your route model bindings, pattern filters, etc.
 *
 * @param \Illuminate\Routing\Router $router
 * @return void
 */
 public function boot(Router $router)
 {
 //
 $this->backendNamespace = 'App\Http\Controllers\Backend';
 $this->frontendNamespace = 'App\Http\Controllers\Frontend';
 $this->apiNamespace = 'App\Http\Controllers\API';
// $this->currentDomain = $this->app->request->server->get('HTTP_HOST');
 $this->currentDomain = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : "";
 
 parent::boot($router);
 }
 
 /**
 * Define the routes for the application.
 *
 * @param \Illuminate\Routing\Router $router
 * @return void
 */
 public function map(Router $router)
 {
// $router->group(['namespace' => $this->namespace], function ($router) {
//  require app_path('Http/routes.php');
// });
 
 $backendUrl = config('route.backend_url');
 $frontendUrl = config('route.frontend_url');
 $apiUrl = config('route.api_url');
 
 switch ($this->currentDomain) {
  case $apiUrl:
  // API路由
  $router->group([
   'domain' => $apiUrl,
   'namespace' => $this->apiNamespace],
   function ($router) {
   require app_path('Http/routes-api.php');
   }
  );
 
  break;
  case $backendUrl:
  // 后端路由
  $router->group([
   'domain' => $backendUrl,
   'namespace' => $this->backendNamespace],
   function ($router) {
   require app_path('Http/routes-backend.php');
   }
  );
  break;
  default:
  // 前端路由
  $router->group([
   'domain' => $frontendUrl,
   'namespace' => $this->frontendNamespace],
   function ($router) {
   require app_path('Http/routes-frontend.php');
   }
  );
 
  break;
 }
 
 }
}

此时只需要在不同的控制器中建立路由就 Ok了。

以上这篇laravel实现前后台路由分离的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP添加MySQL数据记录代码
Jun 07 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 PHP
PHP执行SQL文件并将SQL文件导入到数据库
Sep 17 PHP
Zend Framework开发入门经典教程
Mar 23 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
Yii框架连表查询操作示例
Sep 06 PHP
Laravel数据库读写分离配置的方法
Oct 13 #PHP
Laravel第三方包报class not found的解决方法
Oct 13 #PHP
php7性能提升的原因详解
Oct 13 #PHP
php抽象方法和普通方法的区别点总结
Oct 13 #PHP
php use和include区别总结
Oct 13 #PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 #PHP
laravel框架 laravel-admin上传图片到oss的方法
Oct 13 #PHP
You might like
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
php数组键值用法实例分析
2015/02/27 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
Python函数的周期性执行实现方法
2016/08/13 Python
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
python实现梯度法 python最速下降法
2020/03/24 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
计算机专业毕业生自荐信
2013/12/31 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
2015年宣传工作总结
2015/04/08 职场文书
物业保安辞职信
2015/05/12 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书