Symfony \ Component \ Debug \ Exception \ FatalErrorException laravel ข้อผิดพลาด


32

ฉันได้รับข้อผิดพลาดนี้ในโครงการ Laravel ใหม่ของฉัน ฉันพยายามเรียกใช้หลังจากการติดตั้งใหม่

การประกาศของ Symfony \ Component \ Translation \ TranslatorInterface :: setLocale ($ locale) ต้องเข้ากันได้กับ Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale (สตริง $ locale)


ติดตั้งใหม่ - คุณไม่ได้แก้ไขอะไรเลยเหรอ? มีการตั้งค่าภาษาconfig/app.phpอะไร
Jeremy Harris

@ JeremyHarris ใช่ติดตั้งใหม่อย่างสมบูรณ์ ภาษาเริ่มต้นคือ 'en'
Kuldeep Raj

ปัญหาเดียวกันหลังจากสร้างวันนี้
Logan B. Lehman

คุณใช้ PHP เวอร์ชันใด
Logan B. Lehman

ฉันมีข้อผิดพลาดเดียวกันที่นี่ มันเป็นโครงการขนาดใหญ่ที่ทำงานได้ดีบน windows xampp หนึ่งสัปดาห์ที่ผ่านมาก็ไม่มีข้อผิดพลาดบนเซิร์ฟเวอร์ (centOS เช่น cloud hosting OS) วันนี้ฉันคัดลอกโครงการ 1: 1 ไปยังเซิร์ฟเวอร์ (รวมถึงโฟลเดอร์ผู้ขาย) และมีข้อผิดพลาดนี้บนเซิร์ฟเวอร์แล้ว การติดตั้งผู้แต่งก็ไม่ช่วยเช่นกัน ท้องถิ่น: Windows, PHP 7.2.11 ทำงาน เซิร์ฟเวอร์: centOS เช่น PHP 7.2.24 ข้อผิดพลาดนี้
Dario Eberhard

คำตอบ:


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"
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
ฉันต้องการยืนยันว่านี่เป็นวิธีที่ง่ายที่สุดและดีที่สุด เช้านี้เมื่อฉันกลับมามีปัญหาเมื่อคืนที่ผ่านมาและแก้ไขได้โดยไม่ต้องแก้ไขไฟล์ใด ๆ มีข้อบกพร่องใน Symfony เวอร์ชัน 4.4
Brett

10
นี่ควรเป็นคำตอบที่ยอมรับเนื่องจากไม่จำเป็นต้องมีแนวทางปฏิบัติที่ไม่ดีเช่นการแก้ไขไฟล์ผู้ขาย
โลแกนบีเลห์แมน

ทำงานเหมือนจับใจ!
Ahmad Albab

"symfony / translation": "4.3.8" ไม่ "symfony \ translation": "4.3.8"
Kuldeep Raj

13

ฉันได้รับข้อผิดพลาดเดียวกันวันนี้และฉันแก้ไขด้วยการแก้ไขเล็กน้อย เพียงทำสิ่งนี้:
นำทางไปที่

ผู้ขาย / symfony / แปลสัญญา / LocaleAwareInteface.php

และลบstringคำสำคัญออกจากsetLocale()ฟังก์ชัน

หากคุณได้รับข้อผิดพลาดหลังจากนี้:

การประกาศ Symfony \ Component \ Translation \ Translator :: trans ($ id, array $ parameters = Array, $ domain = NULL, $ locale = NULL) จะต้องเข้ากันได้กับ Symfony \ Contracts \ Translation \ TranslatorInterface :: trans (สตริง $ id , array $ parameters = Array,? string $ domain = NULL,? string $ locale = NULL)

เพียงนำทางไปที่:

ผู้ขาย / symfony / แปลสัญญา / TranslatorInteface.php

และลบstringคำหลักทั้งหมดออกจากtrans()ฟังก์ชัน

--EDIT--

หากคุณไม่ต้องการแก้ไขไฟล์ผู้ขายคุณสามารถใช้สิ่งนี้: เปิดไฟล์ผู้แต่งของคุณและเพิ่มไฟล์นี้"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+ นักแต่งเพลงไม่ควรดาวน์โหลดเวอร์ชันล่าสุดหากเวอร์ชั่น PHP ปัจจุบันน้อยกว่า 7.2.5 ใช่ไหม
Julien Moulin

ใช่คุณถูก. นักแต่งเพลงควรดาวน์โหลดแพ็คเกจที่รองรับในเวอร์ชัน 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.*

วิธีแก้ไข: เพิ่ม"symfony / translation": "4.3.8"ในประพันธ์. jsonดังนี้

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

แล้ว

composer update
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.