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 相关文章推荐
在Windows版的PHP中使用ADO
Oct 09 PHP
获得Google PR值的PHP代码
Jan 28 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
Feb 19 PHP
gd库图片下载类实现下载网页所有图片的php代码
Aug 20 PHP
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
php实现学生管理系统
Mar 21 PHP
360搜索引擎自动收录php改写方案
Apr 28 PHP
PHP里的$_GET数组介绍
Mar 22 PHP
Laravel框架数据库迁移操作实例详解
Apr 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来检测proxy
2006/10/09 PHP
PHP分页函数代码(简单实用型)
2010/12/02 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
2014/11/22 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
2016/11/07 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
Python版的文曲星猜数字游戏代码
2013/09/02 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
北大研究生linux应用求职信
2013/10/29 职场文书
产品促销活动策划书
2014/01/15 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python