注意:本地服务器 PHP 版本 8.1.4,composer.json 文件中的 laravel 项目有“php”:“^7.2.5”,版本和“laravel/framework”:“^7.0”
PHP 致命错误:继承 ArrayAccess 期间:未捕获 ErrorException:Illuminate\Support\Collection::offsetExists($key) 的返回类型应与 ArrayAccess::offsetExists(mixed $offset): bool 兼容,或 #[\ ReturnTypeWillChange] 属性应该用来暂时抑制通知
这是一个php版本问题。升级 laravel 或降级 PHP。本文介绍如何降级 PHP 版本以使其与 Laravel 版本匹配。
https://bytexd.com/fix-laravel-return-type-of-Illuminatesupportcollectionoffsetexistskey/
在你的composer.json更新行中
"php": "^7.3",
到
"php": "^7.3|^8.1",
并运行作曲家更新
您需要使用 Composer 将 Laravel 框架版本至少升级到版本 8 及其依赖项。
参考:https://laravel.com/docs/8.x/releases
或者如果你想推迟它,你需要在声明每个抛出错误的函数之前添加
#[\ReturnTypeWillChange]
。 这是非常不可取的。
附注如果您更新了 PHP 版本,则必须将 Composer 中的 PHP 版本更改为所使用的版本,在您的情况下,它应该是
"php": "^8.1.4"
就我而言,使用Mac,结果发现我的php版本是8.1,它与laravel版本7不兼容。尽管这些答案中的大多数都是正确的,但它们没有解决我的问题。我按照以下步骤操作(如果安装了brew):
出现此问题是因为 PHP 8.1 不支持 laravel 7, 所以意味着虽然你需要将你的 php 版本降级到 <=8.0. This worked for me.
希望这也能帮助你。
在您的项目目录中运行“composer update”,它将起作用。