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
了解Joomla 这款来自国外的php网站管理系统
Mar 11 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
Jun 30 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
php检测图片木马多进制编程实践
Apr 11 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
php简单实现查询数据库返回json数据
Apr 16 PHP
项目中应用Redis+Php的场景
May 22 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 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程序员工具
2008/05/26 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
python3抓取中文网页的方法
2015/07/28 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python Process多进程实现过程
2019/10/22 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
汉森批发:Hansen Wholesale
2018/05/24 全球购物
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
微信小程序和php的登录实现
2021/04/01 PHP
opencv检测动态物体的实现
2021/07/21 Python
移除Selenium中window.navigator.webdriver值
2022/06/10 Python