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 相关文章推荐
基于mysql的论坛(1)
Oct 09 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
Apr 26 PHP
php addslashes和mysql_real_escape_string
Jan 24 PHP
PHP数据类型之布尔型的介绍
Apr 28 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
浅谈php扩展imagick
Jun 02 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
浅谈PHP的反射机制
Dec 15 PHP
如何直接访问php实例对象中的private属性详解
Oct 12 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
Referer原理与图片防盗链实现方法详解
Jul 03 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
PHP PDO函数库详解
2010/04/27 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
JavaScript prototype对象的属性说明
2010/03/13 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
angular.element方法汇总
2015/01/07 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
python BeautifulSoup使用方法详解
2013/11/21 Python
以windows service方式运行Python程序的方法
2015/06/03 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Django 反向生成url实例详解
2019/07/30 Python
python join方法使用详解
2019/07/30 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
python 公共方法汇总解析
2019/09/16 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
python判断链表是否有环的实例代码
2020/01/31 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
请说出几个常用的异常类
2013/01/08 面试题
大学毕业生自我鉴定
2013/11/05 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
劳动模范事迹材料
2014/01/19 职场文书
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL