我在新的Laravel项目中遇到此错误。我试图重新安装后运行。
Symfony \ Component \ Translation \ TranslatorInterface :: setLocale($ locale)的声明必须与Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale(string $ locale)兼容
我在新的Laravel项目中遇到此错误。我试图重新安装后运行。
Symfony \ Component \ Translation \ TranslatorInterface :: setLocale($ locale)的声明必须与Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale(string $ locale)兼容
Answers:
在我的服务器上,以下是配置:
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
作曲家更新--ignore-platform-reqs
在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+(请首先检查其他库的兼容性)。
今天我遇到了同样的错误,我做了一点编辑就解决了。只需执行以下操作:
导航到
供应商/ symfony /翻译合同/LocaleAwareInteface.php
并string
从setLocale()
功能中删除关键字。
如果在此之后收到此错误:
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
并string
从trans()
功能中删除所有关键字
- 编辑 -
如果您不想编辑供应商文件,则可以使用以下方法:
打开composer.json文件,并将其添加到"require"
“ symfony / translation”:“ 4.3.8”,
然后打开您的终端并输入以下内容:
作曲家更新
这不是错误。
最新版本的symfony软件包要求PHP版本至少为7.2.5。
将PHP版本更改为7.2.5或更高版本,它应该可以工作。
config/app.php
为什么?