Symfony \ Component \ Debug \ Exception \ FatalErrorException 라 라벨 오류


32

새 Laravel 프로젝트에서이 오류가 발생합니다. 새로 설치 한 후 실행하려고합니다.

Symfony \ Component \ Translation \ TranslatorInterface :: setLocale ($ locale)의 선언은 Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale (string $ locale)과 호환되어야합니다.


새로 설치-아무것도 수정하지 않았습니까? 언어는 무엇으로 설정되어 config/app.php있습니까?
제레미 해리스

@JeremyHarris 예, 완전히 새로 설치되었습니다. 기본 언어는 'en'입니다
Kuldeep Raj

같은 문제가 바로 오늘날 구축 후
로건 B. 리만을

어떤 버전의 PHP를 사용하고 있습니까?
로건 B. 리만

여기에 같은 오류가 있습니다. Windows xampp에서 로컬로 잘 실행되는 더 큰 프로젝트입니다. 일주일 전에 서버에서 오류가 없었습니다 (클라우드 호스팅 OS와 같은 centOS). 오늘 나는 프로젝트 1 : 1을 서버 (공급 업체 폴더 포함)에 복사하고 서버 에서이 오류가 발생했습니다. 또한 작곡가 재설치는 도움이되지 않습니다. 로컬 : Windows, PHP 7.2.11이 작동합니다. 서버 : centOS like, PHP 7.2.24,이 오류.
Dario Eberhard

답변:


40

내 서버에는 다음과 같은 구성이 있습니다.

PHP 7.1.26-1 + ubuntu14.04.1 + deb.sury.org + 1 라 라벨 프레임 워크 5.7.28

솔루션 : 다음과 같이 composer.json에 추가되었습니다 "symfony/translation": "4.3.8".

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

그리고

composer update

또는 (서버에서 PHP 버전이 권장되지 않는 경우)

작곡가 업데이트 --ignore-platform-reqs


PHP 7.2을 사용하여 또한 "심포니 / 번역"를 추가하지 않고 나를 위해 문제를 해결 : "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에 결함이 있습니다.
Brett

10
벤더 파일 편집과 같은 나쁜 관행이 필요하지 않기 때문에 이것이 정답입니다.
로건 B. 리먼

매력처럼 작동합니다!
Ahmad Albab

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

13

오늘 같은 오류가 발생하여 약간의 편집으로 해결했습니다. 그냥 이렇게 :
탐색

공급 업체 /symfony/translation-contracts/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 = 배열,? string $ domain = NULL,? string $ locale = NULL)

다음으로 이동하십시오.

공급 업체 /symfony/translation-contracts/TranslatorInteface.php

함수 string에서 모든 키워드를 삭제하십시오.trans()

--편집하다--

공급 업체 파일을 편집하지 않으려면 다음을 사용할 수 있습니다. composer.json 파일을 열고 다음을 추가하십시오."require"

"symfony / translation": "4.3.8",

그런 다음 터미널을 열고 다음을 입력하십시오.

작곡가 업데이트


1
어쩌면 그것은 내가 생각하는 버그 일 것입니다. 아직도, 나는 이것의 이유를 모른다.
Kuldeep Raj

17
공급 업체 파일을 편집하는 것은 좋지 않습니다.
Mostafa Attia

1

버그가 아닙니다.

최신 버전의 symfony 패키지를 사용하려면 PHP 버전이 7.2.5 이상이어야합니다.

PHP 버전을 7.2.5 이상으로 변경하면 작동합니다.


1
4.4.X에 PHP 7.2.5 이상이 필요한 경우 Composer는 현재 PHP 버전이 7.2.5 미만인 경우 최신 버전을 다운로드해서는 안됩니다.
Julien Moulin

그래, 너가 맞아. Composer는 현재 PHP 버전에서 지원되는 패키지를 다운로드해야합니다.
Abhinav Saraswat

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

해결 방법 : 추가 "4.3.8": "심포니 / 번역 'composer.json 다음과 같이

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

그리고

composer update
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.