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 开源框架22个简单简介
Aug 24 PHP
PHP 简单日历实现代码
Oct 28 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
选择PHP作为网站开发语言的原因分享
Jan 03 PHP
遭遇php的in_array低性能问题
Sep 17 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
php在数组中查找指定值的方法
Mar 17 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
thinkPHP模板中for循环与switch语句用法示例
Nov 30 PHP
PHP实现网站访问量计数器
Oct 27 PHP
php 调用百度sms来发送短信的实现示例
Nov 02 PHP
PHP中rename()函数的妙用讲解
Feb 28 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开发GUI
2006/10/09 PHP
三种php连接access数据库方法
2013/11/11 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
2011/10/31 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
Vue+axios 实现http拦截及路由拦截实例
2017/04/25 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
Python中获取对象信息的方法
2015/04/27 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
python判断完全平方数的方法
2018/11/13 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
python switch 实现多分支选择功能
2020/12/21 Python
工地安全检查制度
2014/02/04 职场文书
服务质量承诺书
2014/03/27 职场文书
服务明星事迹材料
2014/12/29 职场文书
导游词之太湖
2019/10/08 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript