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新手上路(十二)
Oct 09 PHP
PHP生成月历代码
Jun 14 PHP
PHP实现的封装验证码类详解
Jun 18 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
PHP处理JSON字符串key缺少双引号的解决方法
Sep 16 PHP
php截取中文字符串函数实例
Feb 23 PHP
PHP 获取ip地址代码汇总
Jul 05 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
Sep 25 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
2015/12/08 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
初学Python函数的笔记整理
2015/04/07 Python
浅析Python中的多条件排序实现
2016/06/07 Python
Python浅复制中对象生存周期实例分析
2018/04/02 Python
python学生信息管理系统(初级版)
2018/10/17 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
市场营销毕业生自荐信
2013/11/23 职场文书
责任担保书范文
2014/05/21 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
公司财务部岗位职责
2015/04/14 职场文书
财务人员入职担保书
2015/09/22 职场文书
前端JavaScript大管家 package.json
2021/11/02 Javascript