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 多个submit提交表单 处理方法
Jul 07 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 PHP
破解图片防盗链的代码(asp/php)测试通过
Jul 02 PHP
PHP判断远程图片是否存在的几种方法
May 04 PHP
php实现TCP端口检测的方法
Apr 01 PHP
php实现改变图片直接打开为下载的方法
Apr 14 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
PHP反射API示例分享
Oct 08 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
CakePHP框架Session设置方法分析
Feb 23 PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
Jul 12 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
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
js数组依据下标删除元素
2015/04/14 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
Python Mysql自动备份脚本
2008/07/14 Python
python下os模块强大的重命名方法renames详解
2017/03/07 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
Python中的集合介绍
2019/01/28 Python
python颜色随机生成器的实例代码
2020/01/10 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
深入了解Python enumerate和zip
2020/07/16 Python
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
门诊挂号室室长岗位职责
2013/11/27 职场文书
企业给企业的表扬信
2014/01/13 职场文书
妇产医师自荐信
2014/01/29 职场文书
个人求职信范例
2014/01/29 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
大型会议策划方案
2014/05/17 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
为什么node.js不适合大型项目
2021/04/28 Javascript
python scrapy简单模拟登录的代码分析
2021/07/21 Python
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers
Java tomcat手动配置servlet详解
2021/11/27 Java/Android
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL