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 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
PHP新手用的Insert和Update语句构造类
Mar 31 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
Laravel 5 框架入门(三)
Apr 09 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
Yii中Model(模型)的创建及使用方法
Dec 28 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
阿里云PHP SMS短信服务验证码发送方法
Jul 11 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 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统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
PHP数组实例总结与说明
2011/08/23 PHP
php技巧小结【推荐】
2017/01/19 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
Python + Flask 实现简单的验证码系统
2019/10/01 Python
python字典排序的方法
2019/10/12 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
求职推荐信
2013/10/28 职场文书
校长就职演讲稿
2014/01/06 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
小学清明节活动方案
2014/03/08 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
中小学生学籍证明
2014/10/25 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android