Laravel 5.4前后台分离,通过不同的二级域名访问方法


Posted in PHP onOctober 13, 2019

第一步:添加app\http\Controllers文件夹里面创建我们要存放前端和后端或者接口的文件夹

列如: Home(前端) Admin(后端) App(接口) 文件夹

Laravel 5.4前后台分离,通过不同的二级域名访问方法

第二步:修改app\http\providers\RouteServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

class RouteServiceProvider extends ServiceProvider
{
 /**
 * This namespace is applied to your controller routes.
 *
 * In addition, it is set as the URL generator's root namespace.
 *
 * @var string
 */
 protected $namespace = 'App\Http\Controllers';
 protected $homeNamespace = 'App\Http\Controllers\Home';//PC端
 protected $adminNamespace = 'App\Http\Controllers\Admin';//管理后台

 /**
 * Define your route model bindings, pattern filters, etc.
 *
 * @return void
 */
 public function boot()
 {
 //

 parent::boot();
 }

 /**
 * Define the routes for the application.
 *
 * @return void
 */
 public function map()
 {
 //$this->mapApiRoutes();

 //$this->mapWebRoutes();
 $sld_prefix = explode('.',$_SERVER['HTTP_HOST'])[0];
 if(config('route.admin_url') == $sld_prefix){
  $this->mapAdminRoutes();
 }elseif(config('route.home_url') == $sld_prefix){
  $this->mapHomeRoutes();
 }elseif(config('route.api_url') == $sld_prefix){
  $this->mapApiRoutes();
 }
 }

 /**
 * Define the "web" routes for the application.
 *
 * These routes all receive session state, CSRF protection, etc.
 *
 * @return void
 */
 protected function mapWebRoutes()
 {
 Route::middleware('web')
  ->namespace($this->namespace)
  ->group(base_path('routes/web.php'));
 }

 /**
 * Define the "api" routes for the application.
 *
 * These routes are typically stateless.
 *
 * @return void
 */
 protected function mapApiRoutes()
 {
 Route::prefix('api')
  ->middleware('api')
  ->namespace($this->namespace)
  ->group(base_path('routes/api.php'));
 }

 /**
 * 管理后台
 */
 protected function mapAdminRoutes()
 {
 Route::middleware('web')
  ->namespace($this->adminNamespace)
  ->group(base_path('routes/admin.php'));
 }

 /**
 * PC端
 */
 protected function mapHomeRoutes()
 {
 Route::middleware('web')
  ->namespace($this->homeNamespace)
  ->group(base_path('routes/home.php'));
 }
}

第三步:在routes目录下创建admin.php 和home.php 路由

Laravel 5.4前后台分离,通过不同的二级域名访问方法

第四步:分别在app\Http\Controllers\Admin和app\Http\Controllers\Home

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;

class AdminController extends Controller
{
 public function index()
 {
 echo "this is admin";
 }
}
<?php
namespace App\Http\Controllers\Home;
use App\Http\Controllers\Controller;

class HomeController extends Controller
{
 public function index()
 {
 echo "this is home";
 }
}

第五步:分别在admin.php 和home.php 新建路由

Route::get('/', 'AdminController@index');

Route::get('/','HomeController@index');

第六步:测试

Laravel 5.4前后台分离,通过不同的二级域名访问方法

Laravel 5.4前后台分离,通过不同的二级域名访问方法

第七步:运行报错

错误一:laravel Class ‘App\Http\Controllers\Controller' not found

错误二:Class App\Http\Controllers\IndexController does not exist

解决方法:

在PHPstorm Terminal控制台输入“composer dump-autoload”

因为laravel是用composer来加载类,不是命令创建的类要更新autoload。

如果没有使用PHPstorm编辑器的话,我们需要在本地安装composer,然后cmd以管理员运行,进入到项目的根目录执行“composer dump-autoload”

以上这篇Laravel 5.4前后台分离,通过不同的二级域名访问方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
提取HTML标签
Oct 09 PHP
收藏的PHP常用函数 推荐收藏保存
Feb 21 PHP
基于php上传图片重命名的6种解决方法的详细介绍
Apr 28 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
php数据类型判断函数有哪些
Sep 23 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
PHP间隔一段时间执行代码的方法
Dec 02 PHP
php去除html标记的原生函数详解
Jan 27 PHP
Thinkphp关闭缓存的方法
Jun 26 PHP
PHP页面输出搜索后跳转下一页的处理方法
Sep 30 PHP
浅谈php中fopen不能创建中文文件名文件的问题
Feb 06 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
May 09 PHP
Laravel开启跨域请求的方法
Oct 13 #PHP
浅谈Laravel中的三种中间件的作用
Oct 13 #PHP
laravel config文件配置全局变量的例子
Oct 13 #PHP
Laravel 读取 config 下的数据方法
Oct 13 #PHP
laravel实现前后台路由分离的方法
Oct 13 #PHP
Laravel数据库读写分离配置的方法
Oct 13 #PHP
Laravel第三方包报class not found的解决方法
Oct 13 #PHP
You might like
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
JSONP跨域请求
2017/03/02 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
es6数值的扩展方法
2019/03/11 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
Python求算数平方根和约数的方法汇总
2016/03/09 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
详解Python中的正则表达式
2018/07/08 Python
python如何实现一个刷网页小程序
2018/11/27 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
送给程序员的20个Java集合面试问题
2014/08/06 面试题
食品行业求职人的自我评价
2014/01/19 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
pandas中关于apply+lambda的应用
2022/02/28 Python
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang