Symfony \ Component \ Debug \ Exception \ FatalErrorException laravel Помилка


32

Я отримую цю помилку під час свого нового проекту Laravel. Я намагаюся запустити після свіжої установки.

Декларація Symfony \ Компонент \ Переклад \ TranslatorInterface :: setLocale ($ locale) має бути сумісним з Symfony \ Контракти \ Переклад \ 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, ця помилка.
Даріо Еберхард

Відповіді:


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

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" не "symfony \ translation": "4.3.8"
Kuldeep Raj

13

Я отримав таку ж помилку сьогодні, і я вирішив її за допомогою невеликого редагування. Просто зробіть це:
Перейдіть до

постачальник / symfony / переклади-контракти / LocaleAwareInteface.php

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

Якщо після цього ви отримаєте помилку:

Декларація Symfony \ Компонент \ Переклад \ Перекладач :: trans ($ id, масив $ параметри = Масив, $ домен = NULL, $ locale = NULL) має бути сумісним із Symfony \ Contracts \ Translation \ TranslatorInterface :: trans (рядок $ id , масив $ parametri = масив,? string $ domain = NULL,? string $ locale = NULL)

Просто перейдіть до:

постачальник / symfony / переклади-контракти / TranslatorInteface.php

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

--EDIT--

Якщо ви не хочете редагувати файли постачальників, ви можете скористатися цим: відкрийте файл composer.json і додайте це в"require"

"symfony / переклад": "4.3.8",

Потім відкрийте свій термінал і наберіть це:

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


1
Можливо, це помилка, я думаю. Але я не знаю причини цього.
Kuldeep Raj

17
НЕ гарна ідея редагувати файли постачальників.
Мостафа

1

Це не помилка.

Остання версія пакетів symfony вимагає, щоб версія PHP була не менше 7.2.5

Змініть версію PHP на 7.2.5 або вище і вона повинна працювати.


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

Так, ти правий. Композитор повинен завантажити пакет, який підтримується в поточній версії 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.