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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
php 高效率写法 推荐
Feb 21 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
Sep 16 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
php+mysql实现简单的增删改查功能
Jul 13 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
php metaphone()函数的定义和用法
May 15 PHP
YII视图整合kindeditor扩展的方法
Jul 13 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
php利用递归实现删除文件目录的方法
Sep 23 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
Laravel 自带的Auth验证登录方法
Sep 30 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
PHP进程同步代码实例
2015/02/12 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
js输出列表实现代码
2010/09/12 Javascript
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
讲解Python中的标识运算符
2015/05/14 Python
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
Python中在脚本中引用其他文件函数的实现方法
2016/06/23 Python
Python实战小程序利用matplotlib模块画图代码分享
2017/12/09 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
Python实现像awk一样分割字符串
2020/09/15 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
美国校园市场:OCM
2017/06/08 全球购物
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
2014年社会实践活动总结范文
2014/04/29 职场文书
老乡聚会通知
2015/04/23 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL