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 相关文章推荐
php注入实例
Oct 09 PHP
深入PHP变量存储的详解
Jun 13 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
那些年我们错过的魔术方法(Magic Methods)
Jan 14 PHP
PHP 前加at符合@的作用解析
Jul 31 PHP
php调用自己java程序的方法详解
May 13 PHP
PHP文件与目录操作示例
Dec 24 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
laradock环境docker-compose操作详解
Jul 29 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 04 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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
php cache类代码(php数据缓存类)
2010/04/15 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
$()JS小技巧
2007/07/21 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
JS实现旋转木马轮播图
2020/01/01 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
Python实现list反转实例汇总
2014/11/11 Python
详谈Pandas中iloc和loc以及ix的区别
2018/06/08 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
python代码能做成软件吗
2020/07/24 Python
如何利用Python写个坦克大战
2020/11/18 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
上课迟到检讨书100字
2014/01/11 职场文书
教师党员公开承诺书
2014/03/25 职场文书
社区护士演讲稿
2014/08/27 职场文书
学校四风对照检查材料
2014/08/28 职场文书
国庆节标语大全
2014/10/08 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
对象析构函数__del__在Python中何时使用
2022/03/22 Python
css弧边选项卡的项目实践
2023/05/07 HTML / CSS