Karena tingginya ketergantungan pada file XML, saya mengalami kesulitan mencari penyebab kesalahan ini saat membuat kisi admin kustom:
Kesalahan fatal: Metode Magento \ Ui \ TemplateEngine \ Xhtml \ Hasil :: __ toString () tidak boleh melempar pengecualian dalam C: \ wamp64 \ www \ mage2 \ vendor \ magento \ module-ui \ Component \ Wrapper \ UiComponent.php on line 0
Saya mencoba membuat kisi admin untuk sales_shipment_item
tabel.
Sejauh ini saya punya:
Digunakan xdebug dan memasukkannya ke dalam
__toString()
metode kelas Hasil, itu tidak menunjukkan apa kesalahan sebenarnyaSaya telah
var_dump
-ed variabel dalam__toString()
metodeMode pengembang saya aktif di Magento 2
Saya telah memeriksa
var/logs
dan tidak ada yang membantu
Saya telah berhasil membuat kisi-kisi khusus admin lainnya, tetapi mencoba mencari tahu kesalahan sebenarnya seperti jarum di tumpukan jerami. Adakah yang menemukan cara yang lebih baik untuk men-debug ini? Saya telah melihat ke semua kotak xml di.xml
,, dan model dan semua terlihat ok.
Magento\Ui\TemplateEngine\Xhtml\Result::__toString()
, tangkap pengecualian dan catat, atau cetak. Itu yang seharusnya dilakukan M2.} catch (\Exception $e) { $this->logger->critical($e->getMessage()); $result = $e->getMessage(); }
kesalahannya adalah apa yang sudah saya posting. Ketika saya memiliki kesalahan ini sebelum biasanya ada hubungannya dengan suntikan di.xml yang hilang tetapi ini tidak mungkin untuk debug tanpa hanya menebak, itulah sebabnya saya memposting pertanyaan ini.Jawaban:
Kesalahan yang Anda dapatkan memang dipicu
vendor\magento\module-ui\Component\Wrapper\UiComponent.php
.Namun, itu tidak dipicu pada baris 0 tetapi ketika hasilnya sedang dikonversi ke string dalam metode berikut dalam pernyataan kembali :
Inilah yang dapat Anda coba debug masalah Anda:
$result
berisi sebelum konversi string dan pernyataan kembali disebut$component->getName()
,$component->getComponentName()
dan$component->getData()
untuk membantu Anda mengetahui apa masalahnyasumber
Kesalahan fatal ini juga terjadi pada saya ketika saya menambahkan cantuman / kisi khusus. Saya memperbaiki masalah ini dengan mengubah konstruktor dan memulai pengumpulan yang benar untuk daftar data saya / grid di konstruktor penyedia data. Contoh kisi kustom DataProvider.php
Tetapi Anda perlu membuat \ Acme \ CustomModule \ Model \ ResourceModel \ Entity \ Listing \ Collection untuk mendapatkan data di penyedia data
sumber
JIKA Anda bermigrasi M1 ke M2, maka Anda menghadapi kesalahan di bawah ini selama cmd eksekusi . Toko yang diminta tidak ditemukan. Verifikasi toko dan coba lagi.
tolong jangan mengubah file modul-toko vendor :
cukup dengan menerapkan langkah-langkah di bawah ini:
Saya baru saja menemukan situasi yang sama ini setelah bermigrasi dari Magento 1.9.3.8 ke 2.3.0 dan berharap jawaban saya dapat membantu. Masalahnya berasal dari menghapus beberapa toko, tepatnya 96 toko. Saya mencoba semua jawaban lain di sini tetapi masih mendapatkan kesalahan yang sama.
Perbaikan untuk saya adalah menghapus data toko lama dari dalam "core_config_data" . Masalahnya adalah ketika Magento memuat data konfigurasi run time, ia menemukan toko lama dan mencoba menyelesaikannya. Sebelum membersihkan data dari database saya SANGAT menyarankan Anda menjalankan kueri SELECT di bawah ini untuk memastikan Anda menghapus toko yang benar.
PERINGATAN: PASTIKAN UNTUK MEMBUAT DATABASE ANDA SEBELUM MENJALANKAN INI!
Sekarang jalankan semua perintah magento Anda dapat melihat "Toko yang diminta tidak ditemukan. Verifikasi toko dan coba lagi" diperbaiki dengan permintaan
Sekarang periksa admin Anda di atas kesalahan fatal juga diselesaikan blahhh ... blahh ...
(Catatan: - fatal error_Magento \ Ui \ TemplateEngine \ Xhtml \ Hasil :: __ toString () bergantung pada modul toko jadi jangan ubah / vendor / modul-toko kalau tidak admin sisi kisi / daftar katalog Anda tidak bisa melihat data yang tepat)
sumber
Setelah berjam-jam dan banyak membenturkan kepala ke meja, saya menemukan bahwa saya mendapatkan kesalahan ini, karena saya menggunakan xdebug (yang luar biasa!) Untuk breakpoint pada fungsi tingkat rendah, yaitu
Magento\Ui\TemplateEngine\Xhtml\Result::__toString()
untuk menguji.Rupanya dalam beberapa cara, output dari debugger sebenarnya melempar kesalahan yang menyebabkan metode __toString meneriaki saya.
Saya menjadi gila karena kesalahan hanya akan muncul sendiri ketika saya mengaktifkan debugger dan berpikir mungkin itu ada hubungannya dengan panggilan AJAX dalam mengisi Daftar UI. Mematikannya sepertinya membuatnya bekerja, jadi ada baiknya mencobanya. Saya tidak terlalu yakin bagaimana fungsionalitas breakpoint xdebug (dalam produk IntelliJ khusus ... mungkin) bekerja, selain Anda dapat menggunakan breakpoint dengan garis
xdebug_break()
. Sangat mungkin memiliki breakpoint dalam metode __toString adalah hal yang konyol untuk dilakukan.Kira kita belum bisa men-debug semuanya secara dinamis ... Suatu hari!
Saya sangat berharap ini membantu orang lain.
sumber