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 相关文章推荐
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
php mysql_real_escape_string函数用法与实例教程
Sep 30 PHP
php三维数组去重(示例代码)
Nov 26 PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
几个实用的PHP内置函数使用指南
Nov 27 PHP
thinkphp3.2.2实现生成多张缩略图的方法
Dec 19 PHP
php中实现用数组妩媚地生成要执行的sql语句
Jul 10 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 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下使用SMTP发邮件的代码
2008/01/10 PHP
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
js form action动态修改方法
2008/11/04 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
javascript:void(0)使用探讨
2013/08/27 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
举例讲解JavaScript中关于对象操作的相关知识
2015/11/16 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
EsLint入门学习教程
2017/02/17 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
Python subprocess模块学习总结
2014/03/13 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
django模板获取list中指定索引的值方式
2020/05/14 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
Linux的文件类型
2016/07/05 面试题
搞笑车尾标语
2014/06/23 职场文书
离婚答辩状范文
2015/05/22 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python