Błąd laravel Symfony \ Component \ Debug \ Exception \ FatalErrorException


32

Otrzymuję ten błąd w moim nowym projekcie Laravel. Próbuję uruchomić po nowej instalacji.

Deklaracja Symfony \ Component \ Translation \ TranslatorInterface :: setLocale ($ locale) musi być kompatybilna z Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale (string $ locale)


Świeża instalacja - nic nie zmodyfikowałeś? W jakim języku jest ustawiony config/app.php?
Jeremy Harris

@JeremyHarris Tak całkowicie świeża instalacja. Domyślnym językiem jest „en”
Kuldeep Raj

Ten sam problem zaraz po zbudowaniu dzisiaj
Logan B. Lehman

Jaką wersję PHP używasz?
Logan B. Lehman

Mam ten sam błąd tutaj. Jest to większy projekt, który działa dobrze lokalnie na Windows Xampp. Tydzień temu nie wystąpił również błąd na serwerze (centOS, taki jak chmurowy system operacyjny). Dzisiaj skopiowałem projekt 1: 1 na serwer (w tym folder dostawcy) i wtedy miałem ten błąd na serwerze. Ponowna instalacja kompozytora również nie pomaga. Lokalny: Windows, PHP 7.2.11, działa. Serwer: jak CentOS, PHP 7.2.24, ten błąd.
Dario Eberhard

Odpowiedzi:


40

Na moim serwerze były konfiguracje:

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

Rozwiązanie: Dodano "symfony/translation": "4.3.8"w pliku composer.json w następujący sposób

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

i wtedy

composer update

lub (jeśli wersja PHP nie jest zalecana na serwerze)

aktualizacja kompozytora --ignore-platform-reqs


Korzystanie z PHP 7.2 również rozwiązało problem bez dodawania „symfony / translation”: „4.3.8”
icynets

41

Otrzymałem ten sam błąd w PHP 7.2.3 po composer update(symfony \ translation v4.3.8 => v4.4.0).

Ten problem rozwiązałem za pomocą "symfony/translation": "4.3.8"mojego composer.json.

Trudno edytować pliki dostawców.

-

Edytować:

Dokument Symfony mówi Zainstaluj PHP 7.2.5 lub nowszy , więc jeśli nie chcesz dodawać tego ograniczenia do pliku composer.json, możesz zaktualizować wersję PHP do wersji 7.2.5+ (najpierw sprawdź kompatybilność innych bibliotek).


3
Chcę potwierdzić, że jest to najłatwiejsza i najlepsza metoda. Wycofałem kopalnię dziś rano po problemach zeszłej nocy i naprawiłem ją bez edycji żadnych plików. W wersji 4.4 Symfony występuje usterka.
Brett

10
To powinna być zaakceptowana odpowiedź, ponieważ nie wymaga złych praktyk, takich jak edycja pliku dostawcy.
Logan B. Lehman

Działa jak urok!
Ahmad Albab,

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

13

Otrzymałem dzisiaj ten sam błąd i rozwiązałem go z niewielką edycją. Po prostu zrób to:
przejdź do

vendor / symfony / translation-contract / LocaleAwareInteface.php

i usuń stringsłowo kluczowe z setLocale()funkcji.

Jeśli pojawi się ten błąd po tym:

Deklaracja Symfony \ Component \ Translation \ Translator :: trans ($ id, array $ parameters = Array, $ domain = NULL, $ locale = NULL) musi być kompatybilny z Symfony \ Contracts \ Translation \ TranslatorInterface :: trans (string $ id , tablica $ parametry = Tablica,? ciąg $ domain = NULL,? ciąg $ locale = NULL)

Wystarczy przejść do:

vendor / symfony / translation-contract / TranslatorInteface.php

i usuń wszystkie stringsłowa kluczowe z trans()funkcji

--EDYTOWAĆ--

Jeśli nie chcesz edytować plików dostawcy, możesz użyć tego: Otwórz plik composer.json i dodaj go"require"

„symfony / translation”: „4.3.8”,

Następnie otwórz terminal i wpisz:

aktualizacja kompozytora


1
Może to błąd. Mimo to nie znam przyczyny tego.
Kuldeep Raj

17
NIE jest dobrym pomysłem do edycji plików dostawcy.
Mostafa Attia,

1

To nie jest błąd.

Najnowsza wersja pakietów symfony wymaga wersji PHP co najmniej 7.2.5

Zmień wersję PHP na 7.2.5 lub nowszą i powinna działać.


1
Jeśli 4.4.X wymaga php 7.2.5+, Composer nie powinien pobierać najnowszej wersji, jeśli aktualna wersja PHP jest mniejsza niż 7.2.5, prawda?
Julien Moulin,

Tak masz rację. Kompozytor powinien pobrać pakiet obsługiwany w bieżącej wersji PHP.
Abhinav Saraswat,

4
Nie prawda. Na serwerze używam php7.3 i nadal pojawia się ten błąd
leeCoder

0

Znalazłem proste rozwiązanie tego problemu po tak długim roamingu w Google. Gdyby to mogło komuś pomóc. Aktualizacja wersji PHP do wersji 7.2 lub nowszej

 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

Wykonanie tych kroków powinno pomóc Ci pozbyć się tego problemu


0

Na moim serwerze były konfiguracje:

PHP 7.2 Laravel Framework 6.*

Rozwiązanie: Dodano „symfony / translation”: „4.3.8” w pliku composer.json w następujący sposób

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

i wtedy

composer update
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.