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 相关文章推荐
Apache设置虚拟WEB
Oct 09 PHP
最简单的PHP程序--记数器
Oct 09 PHP
php 数组二分法查找函数代码
Feb 16 PHP
PHP面向对象法则
Feb 23 PHP
使用PHP静态变量当缓存的方法
Nov 13 PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 PHP
PHP实现货币换算的方法
Nov 29 PHP
php发送短信验证码完成注册功能
Nov 24 PHP
Yii编程开发常见调用技巧集锦
Jul 15 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 PHP
PHP基本语法
Mar 31 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
星际原理概述
2020/03/04 星际争霸
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
vue axios请求拦截实例代码
2018/03/29 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
python生成词云的实现方法(推荐)
2017/06/13 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
python实现树形打印目录结构
2018/03/29 Python
在pycharm中实现删除bookmark
2020/02/14 Python
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
汽车运用工程毕业生自荐信
2013/10/29 职场文书
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
顶撞老师检讨书
2014/02/07 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
工作简报范文
2015/07/21 职场文书
决心书格式范文
2015/09/23 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers