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实现让页面只能被百度gogole蜘蛛访问的方法
Dec 29 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
PHP中数组合并的两种方法及区别介绍
Sep 14 PHP
PHP递归算法的详细示例分析
Feb 19 PHP
div li的多行多列 无刷新分页示例代码
Oct 16 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
php微信开发之图片回复功能
Jun 14 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 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/11/28 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
php筛选不存在的图片资源
2015/04/28 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
一些常用的Javascript函数
2006/12/22 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
基于python的字节编译详解
2017/09/20 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
python自动生成model文件过程详解
2019/11/02 Python
Python如何实现FTP功能
2020/05/28 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
新手初学Java List 接口
2021/07/07 Java/Android