如何修复Laravel上的错误"未定义的数组键1"



当我运行php artisan serve命令时,我得到以下错误

PHP 8.1.5
Composer version 2.4.2
Laravel Framework 9.31.0
WARN  [F.

ErrorException
Undefined array key 1
at C:OpenServerdomainschorvavendorlaravelframeworksrcIlluminateFoundationConsoleServeCommand.php:308
304▕             : '/^[([^]]+)]/';
305▕
306▕         preg_match($regex, $line, $matches);
307▕
➜ 308▕         return Carbon::createFromFormat('D M d H:i:s Y', $matches[1]);
309▕     }
310▕
311▕     /**
312▕      * Get the request port from the given PHP server output.
1   C:OpenServerdomainschorvavendorlaravelframeworksrcIlluminateFoundationConsoleServeCommand.php:308
IlluminateFoundationBootstrapHandleExceptions::IlluminateFoundationBootstrap{closure}()
2   C:OpenServerdomainschorvavendorlaravelframeworksrcIlluminateFoundationConsoleServeCommand.php:254
IlluminateFoundationConsoleServeCommand::getDateFromLine()

就在4天前,Laravel核心中的此文件发生了更改。我怀疑你在这方面遇到了问题。

https://github.com/laravel/framework/commit/f40fe7d303544a66f7bcbee8e25c96c743d64d1a

我会试着把Laravel版本降级一点,看看它是否能解决你的问题。如果是这样,你应该在Laravel github页面上打开一个问题。

ServerCommand.php中的更新函数行号:300

文件位置:-laravel\framework\src\Illuminate\Foundation\Console\ServerCommand.php

protected function getDateFromLine($line)
{
$regex = env('PHP_CLI_SERVER_WORKERS', 1) > 1
? '/^[d+]s[(.*)]/'
: '/^[([^]]+)]/';
preg_match($regex, $line, $matches);
if (isset($matches[1])) {  
return Carbon::createFromFormat('D M d H:i:s Y', $matches[1]);
}
return Carbon::now(); 
}

最新更新