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 adodb连接带密码access数据库实例,测试成功
May 14 PHP
php 什么是PEAR?
Mar 19 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
PHP文件上传主要代码讲解
Sep 30 PHP
PHP命令行脚本接收传入参数的三种方式
Aug 20 PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 PHP
php计算两个坐标(经度,纬度)之间距离的方法
Apr 17 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
微信JSSDK分享功能图文实例详解
Apr 08 PHP
php使用event扩展的io复用测试的示例
Oct 20 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实现上传图片生成缩略图示例
2014/04/13 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
详解package.json版本号规则
2019/08/01 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
python验证码识别的实例详解
2016/09/09 Python
谈谈python中GUI的选择
2018/03/01 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Python创建数字列表的示例
2019/11/28 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
Python如何读写字节数据
2020/08/05 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
技术合作协议书范本
2014/04/18 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
学校食堂管理制度
2015/08/04 职场文书
三年级作文之趣事作文
2019/11/04 职场文书