Symfony \ Component \ Debug \ Exception \ FatalErrorException laravel错误

Kul*_*Raj 8 php laravel

我在新的Laravel项目中遇到此错误。我试图重新安装后运行。

Symfony \ Component \ Translation \ TranslatorInterface :: setLocale($ locale)的声明必须与Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale(string $ locale)兼容

zar*_*pio 54

在我的服务器上,以下是配置:

PHP 7.1.26-1+ubuntu14.04.1+deb.sury.org+1 Laravel 框架 5.7.28

解决方法:"symfony/translation": "4.3.8"composer.json中 添加 如下

"require": {
     ...
     "symfony/translation": "4.3.8",
}
Run Code Online (Sandbox Code Playgroud)

进而

composer update
Run Code Online (Sandbox Code Playgroud)

或者(如果服务器上不推荐使用php版本)

作曲家更新 --ignore-platform-reqs


Lok*_*oni 16

我今天遇到了同样的错误,我通过一些编辑解决了它。只需这样做:
导航到

供应商/symfony/translation-contracts/LocaleAwareInteface.php

stringsetLocale()函数中删除关键字。

如果您在此之后收到此错误:

Symfony\Component\Translation\Translator::trans($id, array $parameters = Array, $domain = NULL, $locale = NULL) 的声明必须兼容 Symfony\Contracts\Translation\TranslatorInterface::trans(string $id , 数组 $parameters = 数组, ?string $domain = NULL, ?string $locale = NULL)

只需导航到:

供应商/symfony/translation-contracts/TranslatorInteface.php

stringtrans()函数中删除所有关键字

- 编辑 -

如果您不想编辑供应商文件,可以使用: 打开您的 composer.json 文件,并将其添加到"require"

"symfony/translation": "4.3.8",

然后打开你的终端并输入:

作曲家更新


小智 16

composer update(symfony \ translation v4.3.8 => v4.4.0)之后出现了相同的错误。

"symfony\translation": "4.3.8"在composer.json中解决了这个问题。

硬编辑供应商文件是一个坏主意。

  • 我想确认这是最简单、最好的方法。昨晚出现问题后,今天早上回滚了我的,并在不编辑任何文件的情况下修复了它。Symfony 4.4 版本存在缺陷。 (3认同)
  • 这应该是公认的答案,因为它不需要编辑供应商文件之类的不良做法。 (2认同)