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读MYSQL中文乱码的解决方法
Dec 17 PHP
PHP 中的批处理的实现
Jun 14 PHP
使用php 获取时间今天明天昨天时间戳的详解
Jun 20 PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
php实现图片按比例截取的方法
Feb 06 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
PHP与Perl之间知识点区别整理
Mar 19 PHP
Swoole 5将移除自动添加Event::wait()特性详解
Jul 10 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根据某字段对多维数组进行排序的方法
2015/03/07 PHP
php控制文件下载速度的方法
2015/03/24 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
Javascript Global对象
2009/08/13 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
python编程实现希尔排序
2017/04/13 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
什么是Web Service?
2012/07/25 面试题
个人找工作求职简历的自我评价
2013/10/20 职场文书
师范毕业生个人求职信
2013/12/09 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
入党积极分子群众意见
2015/06/01 职场文书
2015小学毕业班工作总结
2015/07/21 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书