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分页函数
Jul 08 PHP
基于pear auth实现登录验证
Feb 26 PHP
php版小黄鸡simsimi聊天机器人接口分享
Jan 26 PHP
PHP中文编码小技巧
Dec 25 PHP
浅谈COOKIE和SESSION区别
Jul 19 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
php PDO异常处理详解
Nov 20 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
Jul 03 PHP
PHP实现打包下载文件的方法示例
Oct 07 PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 PHP
详细分析PHP7与PHP5区别
Jun 26 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调用三种数据库的方法(1)
2006/10/09 PHP
php4的session功能评述(三)
2006/10/09 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
php创建、获取cookie及基础要点分析
2015/01/26 PHP
php实现源代码加密的方法
2015/07/11 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
Puppet的一些技巧
2018/09/17 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
vue实现购物车列表
2020/06/30 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
使用python遍历指定城市的一周气温
2017/03/31 Python
Python文件操作基本流程代码实例
2017/12/11 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
Flask-Mail用法实例分析
2018/07/21 Python
python实现大转盘抽奖效果
2019/01/22 Python
什么是python的必选参数
2020/06/21 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
迎新春趣味活动方案
2014/08/24 职场文书
工作失职自我检讨书
2015/05/05 职场文书
护理培训心得体会
2016/01/22 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技