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 相关文章推荐
ajax缓存问题解决途径
Dec 06 PHP
PHP编实现程动态图像的创建代码
Sep 28 PHP
PHP 金额数字转换成英文
May 06 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
PHP生成plist数据的方法
Jun 16 PHP
详解Window7 下开发php扩展
Dec 31 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
Oct 22 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
May 09 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
Aug 12 PHP
Laravel 创建指定表 migrate的例子
Oct 09 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 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导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
如何在PHP中使用数组
2020/06/09 PHP
javascript smipleChart 简单图标类
2011/01/12 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
jquery使用正则表达式验证email地址的方法
2015/01/22 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
jQuery知识点整理
2015/01/30 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
纯javascript版日历控件
2016/11/24 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
Python 模拟登陆的两种实现方法
2017/08/10 Python
python调用百度语音识别api
2018/08/30 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
python爬虫基础之urllib的使用
2020/12/31 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
会计专业导师推荐信
2014/03/08 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
师范生求职信
2014/06/14 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
考研导师推荐信范文
2015/03/27 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
python 爬取吉首大学网站成绩单
2021/06/02 Python
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python