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 和 MySQL 时区的一点总结
Mar 26 PHP
让PHP支持断点续传的源码
May 16 PHP
php修改时间格式的代码
May 29 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
Mar 05 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
PHP使用内置函数生成图片的方法详解
May 09 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 PHP
php支付宝在线支付接口开发教程
Sep 19 PHP
CI框架表单验证实例详解
Nov 21 PHP
php 中奖概率算法实现代码
Jan 25 PHP
Yii框架核心组件类实例详解
Aug 06 PHP
基于PHP实现生成随机水印图片
Dec 09 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 $_FILES函数详解
2011/03/09 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
vue实现移动端图片裁剪上传功能
2020/08/18 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
Python函数式编程
2017/07/20 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
Python检测数据类型的方法总结
2019/05/20 Python
python文件选择对话框的操作方法
2019/06/27 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
Python爬虫与反爬虫大战
2020/07/30 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
职业生涯规划怎么写
2013/12/29 职场文书
小学三年级学生评语
2014/04/22 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
感谢信怎么写
2015/01/21 职场文书
员工辞职信怎么写
2015/02/27 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
python实现三次密码验证的示例
2021/04/29 Python
Python自动化测试PO模型封装过程详解
2021/06/22 Python
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android
Python读取和写入Excel数据
2022/04/20 Python