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中的CMS的涵义
Mar 11 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
Sep 11 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
Oct 18 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
Jan 23 PHP
php实现根据身份证获取精准年龄
Feb 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 中的批处理的实现
2007/06/14 PHP
ThinkPHP分页实例
2014/10/15 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
JavaScript 特殊字符
2007/04/05 Javascript
JQuery 入门实例1
2009/06/25 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
js函数排序的实例代码
2013/07/01 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
JS和JQ的event对象区别分析
2014/11/24 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
jQuery动态星级评分效果实现方法
2015/08/06 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
英国复古服装购物网站:Collectif
2019/10/30 全球购物
大专生毕业的自我评价
2014/02/06 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
预防艾滋病宣传标语
2014/06/25 职场文书
员工趣味活动方案
2014/08/27 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
刑事和解协议书范本
2014/11/19 职场文书
2015年教研组工作总结
2015/05/04 职场文书
如何写好开幕词?
2019/06/24 职场文书
Python制作表白爱心合集
2022/01/22 Python
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫