Symfony \ Component \ Debug \ Exception \ FatalErrorException laravel Error


32

Я получаю эту ошибку в моем новом проекте Laravel. Я пытаюсь запустить после новой установки.

Объявление Symfony \ Component \ Translation \ TranslatorInterface :: setLocale ($ locale) должно быть совместимо с Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale (строка $ locale)


Свежая установка - вы ничего не модифицировали? Какой язык установлен в config/app.php?
Джереми Харрис

@JeremyHarris Да, совершенно новая установка. Язык по умолчанию - en
Kuldeep Raj

Та же самая проблема только после строительства сегодня
Логан Б. Лехман

Какую версию PHP вы используете?
Логан Б. Лехман

У меня такая же ошибка здесь. Это более крупный проект, который отлично работает локально на Windows XAMPP. Неделю назад на сервере также не было ошибок (например, CentOS, как облачный хостинг ОС). Сегодня я скопировал проект 1: 1 на сервер (включая папку поставщика) и тогда на сервере была эта ошибка. Также переустановка композитора не помогает. Локальный: Windows, PHP 7.2.11, работает. Сервер: вроде centOS, PHP 7.2.24, эта ошибка.
Дарио Эберхард

Ответы:


41

На моем сервере были следующие конфигурации:

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

Я получил ту же ошибку на PHP 7.2.3 после composer update(symfony \ translation v4.3.8 => v4.4.0).

Я решил эту проблему "symfony/translation": "4.3.8"в моем composer.json.

Это плохая идея, чтобы жестко редактировать файлы поставщиков.

-

Редактировать:

Symfony doc сообщает: « Установите PHP 7.2.5 или выше , поэтому, если вы не хотите добавлять это ограничение в свой файл composer.json, вы можете обновить версию PHP до 7.2.5+ (сначала проверьте совместимость других библиотек)».


3
Я хочу подтвердить, что это самый простой и лучший метод. Этим утром откатил мою обратно после проблем вчерашнего вечера и исправил, не редактируя никаких файлов. Существует дефект в версии 4.4 Symfony.
Бретт

10
Это должен быть принятый ответ, поскольку он не требует плохих практик, таких как редактирование файла поставщика.
Логан Б. Лехман

Работает как шарм!
Ахмад Албаб

"symfony / translation": "4.3.8" not "symfony \ translation": "4.3.8"
Kuldeep Raj

13

Я получил ту же ошибку сегодня, и я решил ее с небольшим редактированием. Просто сделайте это:
перейдите к

поставщик / Symfony / перевод-контракты / LocaleAwareInteface.php

и удалите stringключевое слово из setLocale()функции.

Если вы получите эту ошибку после этого:

Объявление Symfony \ Component \ Translation \ Translator :: trans ($ id, массив $ parameters = Array, $ domain = NULL, $ locale = NULL) должно быть совместимо с Symfony \ Contracts \ Translation \ TranslatorInterface :: trans (строка $ id , массив $ parameters = Array,? string $ domain = NULL,? string $ locale = NULL)

Просто перейдите к:

поставщик / Symfony / перевод-контракты / TranslatorInteface.php

и удалите все stringключевые слова из trans()функции

--РЕДАКТИРОВАТЬ--

Если вы не хотите редактировать файлы вендора, вы можете использовать это: Откройте файл composer.json и добавьте его в"require"

"symfony / translation": "4.3.8",

Затем откройте свой терминал и введите это:

обновление композитора


1
Может быть, это ошибка, я думаю. Тем не менее, я не знаю причину этого.
Кулдип Радж

17
НЕ хорошая идея для редактирования файлов вендора.
Мостафа

1

Это не ошибка.

Последняя версия пакетов Symfony требует, чтобы версия PHP была как минимум 7.2.5.

Измените версию PHP на 7.2.5 или выше, и она должна работать.


1
Если для 4.4.X требуется php 7.2.5+, Composer не должен загружать последнюю версию, если текущая версия PHP меньше 7.2.5, не так ли?
Жюльен Мулен

Да ты прав. Composer должен загрузить пакет, который поддерживается в текущей версии PHP.
Абхинав Сарасват

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.*

Решение: добавлено «symfony / translation»: «4.3.8» в composer.json следующим образом

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

а потом

composer update
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.