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与php MySQL 之间的关系
Jul 17 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
Apr 18 PHP
使用php实现快钱支付功能(涉及到接口)
Jul 01 PHP
ThinkPHP字符串函数及常用函数汇总
Jul 18 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
PHP模糊查询技术实例分析【附源码下载】
Mar 07 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
May 27 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
Aug 06 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 PHP
php输出形式实例整理
May 05 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 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
php bootstrap实现简单登录
2016/03/08 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
js脚本学习 比较实用的基础
2006/09/07 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
js倒计时显示实例
2016/12/11 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
深入理解vue中的$set
2017/06/01 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
Python在不同目录下导入模块的实现方法
2017/10/27 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
Python线性回归实战分析
2018/02/01 Python
pandas.cut具体使用总结
2019/06/24 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
介绍一下Java中的static关键字
2012/05/12 面试题
求职简历自荐信
2013/10/20 职场文书
岗位职责的定义
2013/11/10 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
党性分析自查总结
2014/10/14 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
golang slice元素去重操作
2021/04/30 Golang
Pandas 数据编码的十种方法
2022/04/20 Python