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


32

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

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


全新安装-您没有进行任何修改吗?语言设置config/app.php为什么?
杰里米·哈里斯

@JeremyHarris是的,全新安装。默认语言是“恩”
Kuldeep拉吉

今天刚建设

您正在运行什么版本的PHP?
Logan B. Lehman,

我在这里有同样的错误。这是一个较大的项目,可以在Windows xampp上在本地正常运行。一周前,它在服务器(centOS,如云托管OS)上也没有错误。今天,我将项目1:1复制到服务器(包括供应商文件夹),然后在服务器上出现此错误。另外作曲家重新安装没有帮助。本地:Windows,PHP 7.2.11有效。服务器:centOS之类的,PHP 7.2.24,此错误。
Dario Eberhard

Answers:


40

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

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

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

"require": {
     ...
     "symfony/translation": "4.3.8",
}

然后

composer update

或(如果不建议在服务器上使用php版本)

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


使用PHP 7.2也为我解决了这个问题,而无需添加“ symfony / translation”:“ 4.3.8”
icynets

41

composer update(symfony \ translation v4.3.8 => v4.4.0)之后,我在PHP 7.2.3上遇到了相同的错误。

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

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

-

编辑:

Symfony doc表示安装PHP 7.2.5或更高版本,因此,如果您不想将此限制添加到composer.json文件中,则可以将PHP版本升级到7.2.5+(请首先检查其他库的兼容性)。


3
我想确认这是最简单,最好的方法。昨晚遇到问题后,今天早晨将其回滚,并在不编辑任何文件的情况下进行了修复。Symfony的4.4版本存在缺陷。
布雷特

10
这应该是公认的答案,因为它不需要编辑供应商文件之类的不良做法。
Logan B. Lehman,

像魅力一样工作!
艾哈迈德·阿尔巴

“ symfony / translation”:“ 4.3.8”不是“ symfony \ translation”:“ 4.3.8”
Kuldeep Raj

13

今天我遇到了同样的错误,我做了一点编辑就解决了。只需执行以下操作:
导航到

供应商/ symfony /翻译合同/LocaleAwareInteface.php

stringsetLocale()功能中删除关键字。

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

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

只需导航至:

供应商/ symfony /翻译合同/TranslatorInteface.php

stringtrans()功能中删除所有关键字

- 编辑 -

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

“ symfony / translation”:“ 4.3.8”,

然后打开您的终端并输入以下内容:

作曲家更新


1
我猜可能是个错误。不过,我不知道其背后的原因。
Kuldeep Raj

17
编辑供应商文件不是一个好主意。
Mostafa Attia

1

这不是错误。

最新版本的symfony软件包要求PHP版本至少为7.2.5。

将PHP版本更改为7.2.5或更高版本,它应该可以工作。


1
如果4.4.X需要php 7.2.5+,则如果当前的PHP版本低于7.2.5,Composer不应下载最新版本,不是吗?
朱利安·穆兰

是的,你是对的。Composer应该下载当前PHP版本支持的软件包。
Abhinav Saraswat,

4
不对。在服务器上,我使用的是php7.3,但仍然出现此错误
leeCoder

0

在Google漫游了很长时间后,我找到了解决此问题的简单方法。如果可以帮助某人。将您的PHP版本升级到7.2或更高版本

 1. sudo a2dismod phpX(X is less than 7.2 version) 
 2. sudo a2enmod php7.2(could be greater than or equal to 7.2)
 3. service apache2 restart

遵循以下步骤应该可以帮助您摆脱此问题


0

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

PHP 7.2 Laravel Framework 6.*

解决方案:在composer.json中添加了“ symfony / translation”:“ 4.3.8”,如下所示

"require": {
     ...
     "symfony/translation": "4.3.8",
}

然后

composer update
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.