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中改变图片的尺寸大小的代码
Jul 17 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
May 08 PHP
php中file_get_content 和curl以及fopen 效率分析
Sep 19 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 PHP
PHP JSON格式的中文显示问题解决方法
Apr 09 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
PHP单态模式简单用法示例
Nov 16 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
Thinkphp自定义生成缩略图尺寸的方法
Aug 05 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 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 XML数据解析代码
2010/05/26 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
php使用curl存储cookie的示例
2014/03/31 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP使用缓存即时输出内容(output buffering)的方法
2015/08/03 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
javascript页面加载完执行事件代码
2014/02/11 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
区分python中的进程与线程
2020/08/13 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
python 实现有道翻译功能
2021/02/26 Python
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
护士演讲稿范文
2014/01/05 职场文书
爱国演讲稿400字
2014/05/07 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
违纪检讨书
2015/01/27 职场文书
python实现A*寻路算法
2021/06/13 Python
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python