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编程网上资源导航
Oct 09 PHP
谈谈PHP语法(2)
Oct 09 PHP
php5 pdo新改动加载注意事项
Sep 11 PHP
PHP COOKIE设置为浏览器进程
Jun 21 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
深入解析phpCB批量转换的代码示例
Jun 27 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
php实现购物车功能(下)
Jan 05 PHP
屏蔽PHP默认设置中的Notice警告的方法
May 20 PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 PHP
多个Laravel项目如何共用migrations详解
Sep 25 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代码
2006/12/06 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
phpstorm编辑器乱码问题解决
2014/12/01 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
vue.js移动数组位置,同时更新视图的方法
2018/03/08 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
探亲邀请信范文
2014/01/30 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
医德医风个人工作总结2014
2014/11/14 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python