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(1)
Oct 09 PHP
php格式化工具Beautify PHP小小BUG
Apr 24 PHP
深入理解php的MySQL连接类
Jun 07 PHP
解析将多维数组转换为支持curl提交的一维数组格式
Jul 08 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
destoon供应信息title调用出公司名称的方法
Aug 22 PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
PHP抽象类基本用法示例
Dec 28 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
第五节--克隆
2006/11/16 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
php数组键值用法实例分析
2015/02/27 PHP
php生成无限栏目树
2017/03/16 PHP
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
用pandas按列合并两个文件的实例
2018/04/12 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
教师旷工检讨书
2014/01/18 职场文书
企业申诉管理制度
2014/01/30 职场文书
优秀大学生自荐信
2014/06/09 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
单位介绍信格式
2015/01/31 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
react中props 的使用及进行限制的方法
2021/04/28 Javascript