Symfony \ Component \ Debug \ Exception \ FatalErrorException Kesalahan laravel

32

Saya mendapatkan kesalahan ini pada proyek Laravel baru saya. Saya mencoba menjalankan setelah instalasi baru.

Deklarasi Symfony \ Component \ Translation \ TranslatorInterface :: setLocale ($ locale) harus kompatibel dengan Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale (string $ locale)

Kuldeep Raj
sumber
Instalasi baru - Anda tidak mengubah apa pun? Apa bahasa yang diatur dalam config/app.php?
Jeremy Harris
@JeremyHarris Ya pemasangan yang benar-benar baru. Bahasa default adalah 'en'
Kuldeep Raj
Persoalan yang sama tepat setelah bangunan hari ini
Logan B. Lehman
Versi PHP apa yang Anda jalankan?
Logan B. Lehman
Saya memiliki kesalahan yang sama di sini. Ini adalah proyek yang lebih besar yang berjalan dengan baik secara lokal di windows xampp. Satu minggu yang lalu itu juga tidak ada kesalahan di server (centOS seperti cloud hosting OS). Hari ini saya menyalin proyek 1: 1 ke server (termasuk folder vendor) dan memiliki kesalahan ini di server. Instal ulang komposer juga tidak membantu. Lokal: Windows, PHP 7.2.11, berfungsi. Server: seperti centOS, PHP 7.2.24, kesalahan ini.
Dario Eberhard

Jawaban:

41

Di server saya berikut ini adalah konfigurasi:

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

Solusi: Ditambahkan "symfony/translation": "4.3.8"dalam composer.json sebagai berikut

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

lalu

composer update

atau (jika versi php tidak disarankan di server)

pembaruan komposer --ignore-platform-reqs

zarpio
sumber
Menggunakan PHP 7.2 juga memecahkan masalah bagi saya tanpa menambahkan "symfony / translation": "4.3.8"
icynets
41

Saya mendapat kesalahan yang sama pada PHP 7.2.3 setelah composer update(symfony \ translation v4.3.8 => v4.4.0).

Saya memecahkan masalah ini dengan "symfony/translation": "4.3.8"di composer.json saya.

Itu ide yang buruk untuk mengedit file vendor.

-

Edit:

Symfony doc mengatakan Instal PHP 7.2.5 atau lebih tinggi , jadi jika Anda tidak ingin menambahkan pembatasan ini ke file composer.json Anda, Anda dapat memutakhirkan versi PHP Anda menjadi 7.2.5+ (periksa kompatibilitas perpustakaan lain terlebih dahulu).

Julien Moulin
sumber
3
Saya ingin mengkonfirmasi ini adalah metode termudah dan terbaik. Rolled mine back pagi ini setelah mengalami masalah tadi malam dan memperbaikinya tanpa mengedit file apa pun. Ada cacat pada versi 4.4 dari Symfony.
Brett
10
Ini harus menjadi jawaban yang diterima, karena tidak memerlukan praktik buruk seperti mengedit file vendor.
Logan B. Lehman
Bekerja seperti pesona!
Ahmad Albab
"symfony / translation": "4.3.8" not "symfony \ translation": "4.3.8"
Kuldeep Raj
13

Saya mendapat kesalahan yang sama hari ini dan saya menyelesaikannya dengan sedikit pengeditan. Lakukan ini:
Navigasikan ke

vendor / symfony / kontrak-terjemahan / LocaleAwareInteface.php

dan hapus stringkata kunci dari setLocale()fungsi.

Jika Anda mendapatkan kesalahan ini setelah ini:

Deklarasi Symfony \ Component \ Translation \ Translator :: trans ($ id, array $ parameter = Array, $ domain = NULL, $ locale = NULL) harus kompatibel dengan Symfony \ Contracts \ Translation \ TranslatorInterface :: trans (string $ id , array $ parameter = Array,? string $ domain = NULL,? string $ locale = NULL)

Navigasikan ke:

vendor / symfony / kontrak-terjemahan / TranslatorInteface.php

dan hapus semua stringkata kunci dari trans()fungsi

--EDIT--

Jika Anda tidak ingin mengedit file vendor, Anda dapat menggunakan ini: Buka file composer.json Anda, dan tambahkan ini"require"

"symfony / translation": "4.3.8",

Kemudian buka terminal Anda dan ketik ini:

pembaruan komposer

Lokendra Soni
sumber
1
Mungkin itu adalah bug saya kira. Namun, saya tidak tahu alasan di balik ini.
Kuldeep Raj
17
BUKAN ide yang baik untuk mengedit file vendor.
Mostafa Attia
1

Itu bukan bug.

Versi terbaru dari paket symfony membutuhkan versi PHP paling tidak 7.2.5

Ubah versi PHP ke 7.2.5 atau lebih tinggi dan itu akan berfungsi.

Abhinav Saraswat
sumber
1
Jika 4.4.X membutuhkan php 7.2.5+, Composer tidak boleh mengunduh versi terbaru jika versi PHP saat ini kurang dari 7.2.5, bukan?
Julien Moulin
Ya kamu benar. Composer harus mengunduh paket yang didukung dalam versi PHP saat ini.
Abhinav Saraswat
4
Tidak benar. Di server, saya menggunakan php7.3 dan saya masih mendapatkan kesalahan ini
leeCoder
0

Saya menemukan solusi sederhana untuk masalah ini setelah roaming google begitu lama. Jika itu bisa membantu seseorang. Meningkatkan Versi PHP Anda menjadi 7.2 atau lebih

 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

Mengikuti langkah-langkah ini akan membantu Anda menyingkirkan masalah ini

VishalParkash
sumber
0

Di server saya berikut ini adalah konfigurasi:

PHP 7.2 Laravel Framework 6.*

Solusi: Menambahkan "symfony / translation": "4.3.8" di composer.json sebagai berikut

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

lalu

composer update
Alex
sumber