首页 > 解决方案 > Symfony\Component\Translation\TranslatorInterface::setLocale($locale) 的声明必须与

问题描述

当我做作曲家更新我的laravel项目并运行任何api后出现此错误

Declaration of Symfony\Component\Translation\TranslatorInterface::setLocale($locale) must be compatible with Symfony\Contracts\Translation\LocaleAwareInterface::setLocale(string $locale)

这是我的 composer.json 文件

"require": {
        "php": "^7.1.3",
        "astrotomic/laravel-translatable": "^11.1",
        "bensampo/laravel-enum": "^1.26",
        "brozot/laravel-fcm": "^1.3",
        "doctrine/dbal": "^2.9",
        "fideloper/proxy": "^4.0",
        "intervention/image": "^2.5",
        "laravel/framework": "5.8.*",
        "laravel/tinker": "^1.0",
        "mpociot/laravel-apidoc-generator": "^3.17",
        "nwidart/laravel-modules": "^5.0",
        "spatie/laravel-permission": "^2.37",
        "tymon/jwt-auth": "dev-develop"
    },
    "require-dev": {
        "barryvdh/laravel-debugbar": "^3.2",
        "beyondcode/laravel-dump-server": "^1.0",
        "filp/whoops": "^2.0",
        "fzaninotto/faker": "^1.4",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^3.0",
        "phpunit/phpunit": "^7.5"
    },

这是我的 php 版本:

PHP 7.3.11-1+ubuntu16.04.1+deb.sury.org+1 

标签: laravellaravel-5.8

解决方案


快速谷歌在 Laravel repo 上将我带到了这个问题:https ://github.com/laravel/framework/issues/30655#issuecomment-558619927 。

有同样的问题,最快的解决方法是"symfony/translation": "4.3.8"在你的composer.json& 运行中要求composer update

但是,这不应该是必需的,因为最可能的原因是因为您在本地使用 PHP 7.3,但是在另一个 PHP 版本正在运行时出现错误,例如7.2.

如果是这种情况,您可以运行此命令composer config platform.php 7.2(如果这是您需要的版本,则替换7.27.1)告诉作曲家您所针对的 PHP 版本,这允许您在7.3本地使用,但将为正确的 PHP 版本安装包。


推荐阅读