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 判断常量,变量和函数是否存在
Apr 26 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
调试PHP程序的多种方法介绍
Nov 06 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
php实现的mongodb操作类实例
Apr 03 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 PHP
phpinfo的知识点总结
Oct 10 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 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 模拟POST|GET操作实现代码
2010/07/20 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
JS常用函数使用指南
2014/11/23 Javascript
javascript的push使用指南
2014/12/05 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
使用python实现对元素的长截图功能
2019/11/14 Python
python 实现控制鼠标键盘
2020/11/27 Python
阿里云:Aliyun.com
2017/02/15 全球购物
函授大专自我鉴定
2013/11/01 职场文书
学校个人对照检查材料
2014/08/26 职场文书
高考1977观后感
2015/06/04 职场文书
校园新闻稿范文
2015/07/18 职场文书
执行力心得体会范文
2016/01/11 职场文书
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫
python如何为list实现find方法
2022/05/30 Python