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(5) 类和对象
Feb 16 PHP
php中利用post传递字符串重定向的实现代码
Apr 21 PHP
php记录日志的实现代码
Aug 08 PHP
php从右向左/从左向右截取字符串的实现方法
Nov 28 PHP
关于PHP自动判断字符集并转码的详解
Jun 26 PHP
对于PHP 5.4 你必须要知道的
Aug 07 PHP
使用PHP导出Word文档的原理和实例
Oct 21 PHP
php中url函数介绍及使用示例
Feb 13 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
Feb 08 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php仿discuz分页效果代码
2008/10/02 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
php实现对象克隆的方法
2015/06/20 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
js中日期的加减法
2015/05/06 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
python之文件读取一行一行的方法
2018/07/12 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
python实现简单颜色识别程序
2020/02/19 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
计算机专业自我鉴定
2013/10/15 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
岳庙导游词
2015/02/04 职场文书
小学生交通安全寄语
2015/02/27 职场文书
运动会观后感
2015/06/09 职场文书
个人工作决心书
2015/09/22 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫