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 引用(&amp;)详解
Nov 20 PHP
PHP用mysql数据库存储session的代码
Mar 05 PHP
用PHP+MySQL搭建聊天室功能实例代码
Aug 20 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
php解析json数据实例
Aug 19 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 PHP
php版微信发红包接口用法示例
Sep 23 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
php-fpm服务启动脚本的方法
Apr 27 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
php实现转换html格式为文本格式的方法
2016/05/16 PHP
php mysql 封装类实例代码
2016/09/18 PHP
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
利用Python实现Windows定时关机功能
2017/03/21 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
Python3实现转换Image图片格式
2018/06/21 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
Python3 合并二叉树的实现
2019/09/30 Python
python反转列表的三种方式解析
2019/11/08 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
Linux文件系统类型
2012/09/16 面试题
部队学习十八大感言
2014/01/11 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
小学三年级学生评语
2014/04/22 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
感谢信模板大全
2015/01/23 职场文书
检讨书范文1000字
2015/01/28 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
Window server中安装Redis的超详细教程
2021/11/17 Redis