php 5.4 http_host,Laravel 5.1在运行’php artisan serve’时给出’undefined index:http_host’...

我使用5.4版学习了laravel 6个月.然后我安装了最新的xampp.但是现在我开始从事基于laravel 5.1的项目.但是,当我想运行该应用程序时,它给了我错误(未定义的索引:http_host)!我如何找到错误的来源?

我该如何解决这个问题?我在网上搜索,但没有发现任何成果.

你能帮我吗?

Storage / log.php:

[2017-07-18 21:55:50] local.ERROR: ErrorException: Undefined index: HTTP_HOST in H:\Current\school\school\app\Providers\AppServiceProvider.php:40

堆栈跟踪:

#0 H:\Current\school\school\app\Providers\AppServiceProvider.php(40): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8, 'Undefined index...', 'H:\\Current\\scho...', 40, Array)

#1 [internal function]: Erp\Providers\AppServiceProvider->boot()

#2 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Container\Container.php(507): call_user_func_array(Array, Array)

#3 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(734): Illuminate\Container\Container->call(Array)

#4 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(717): Illuminate\Foundation\Application->bootProvider(Object(Erp\Providers\AppServiceProvider))

#5 [internal function]: Illuminate\Foundation\Application->Illuminate\Foundation\{closure}(Object(Erp\Providers\AppServiceProvider), 18)

#6 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(718): array_walk(Array, Object(Closure))

#7 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\BootProviders.php(17): Illuminate\Foundation\Application->boot()

#8 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(203): Illuminate\Foundation\Bootstrap\BootProviders->bootstrap(Object(Illuminate\Foundation\Application))

#9 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(208): Illuminate\Foundation\Application->bootstrapWith(Array)

#10 H:\Current\school\school\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(105): Illuminate\Foundation\Console\Kernel->bootstrap()

#11 H:\Current\school\school\artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

#12 {main}

AppServiceProvider:

public function boot()

{

if(!Session::get(SITE_ID)){

$subdomain_name = array_shift((explode(".",$_SERVER['HTTP_HOST'])));

if(isset($subdomain_name) && !empty($subdomain_name)){

$domain = $subdomain_name;

}else{

$domain = "school";

}

$siteToRecollect = DB::table('site_infos')->where('site_alias',$domain)->first();

if(isset($siteToRecollect->id) && !empty($siteToRecollect->id) && $siteToRecollect->id != 0){

Session::put(SITE_ID,$siteToRecollect->id);

}else{

Session::put(SITE_ID,1);

}

}

}

40线:

$subdomain_name = array_shift((explode(".",$_SERVER['HTTP_HOST'])));

解决方法:

变量$_SERVER [‘HTTP_HOST’]仅适用于浏览器,不适用于PHP-CLI,因此,当您运行命令php artisan $_SERVER [‘HTTP_HOST’]将不存在时,可以在此处进行检查Undefined index HTTP_HOST even though it is checked

在这种情况下,可以通过检查$_SERVER [‘HTTP_HOST’]是否存在来修复代码.

if(isset($_SERVER['HTTP_HOST']) && !empty($_SERVER['HTTP_HOST'])){

$gethost = explode(".",$_SERVER['HTTP_HOST']);

$domain = array_shift($gethost);

}else{

$domain = "school";

}

关于线路将解决您的问题,并且会有一些改进.这是固定代码的完整版本,并经过测试.

public function boot()

{

if(!Session::get(SITE_ID)){

$domain = "school";

if(isset($_SERVER['HTTP_HOST']) && !empty($_SERVER['HTTP_HOST'])){

$gethost = explode(".",$_SERVER['HTTP_HOST']);

$domain = array_shift($gethost);

}

$siteToRecollect = DB::table('site_infos')->where('site_alias', $domain)->first();

if(isset($siteToRecollect->id) != 0 && !empty($siteToRecollect->id))

{

Session::put(SITE_ID, $siteToRecollect->id);

}else{

Session::put(SITE_ID,1);

}

}

}

希望有帮助

标签:laravel-5,php

来源: https://codeday.me/bug/20191111/2017873.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值