Koduję z Magento 2 w gvim i jestem nowy w Magento 2.
Wiele razy próbowałem debugować błędy związane z XML, cóż, za każdym razem przy odrobinie szczęścia. Ale takie sytuacje naprawdę mnie denerwują: nie wiesz, gdzie jest plik, który powoduje ten błąd, a debugger nie mówi ani jednego, ani drugiego.
Rozumiem, co następuje: plik xml jest nieprawidłowy. faktycznie utworzyłem moduł, który zawiera module.xml, trasy.xml, config.xml, {layout} .xml, di.xml pod nim itp. lub katalogi widok / układ. Który wiersz pliku 12/89 / .. jest nieprawidłowy? wygenerowany / scalony? Zgubiłem się, ponieważ nie znajduję nic w zmiennej var / generowane, a linia poleceń przestaje działać. Jaki jest sposób debugowania, aby dowiedzieć się, co to za błąd.
Każda pomoc jest mile widziana.
Błąd krytyczny: Uncaught Magento \ Framework \ Exception \ LocalizedException: Nieprawidłowy element dokumentu „element”: definicja typu jest abstrakcyjna. Wiersz: 12 elementów „item”, atrybut „name”: XPath „@name” pola kluczowego ograniczenia tożsamości „itemName” jest przetwarzany na zbiór węzłów z więcej niż jednym elementem. Wiersz: 89 Element „item”: Nie wszystkie pola ograniczenia tożsamości klucza „itemName” są przetwarzane w węźle. Wiersz: 89 Element „item”, atrybut „name”: XPath „@name” pola kluczowego ograniczenia tożsamości „itemName” jest przetwarzany na zbiór węzłów z więcej niż jednym elementem. Wiersz: 90 Element „item”: Nie wszystkie pola ograniczenia tożsamości klucza „itemName” są przetwarzane w węźle. Linia: 90 w /var/www/html/lib/internal/Magento/Framework/Config/Reader/Filesystem.php:
Odpowiedzi:
Zgłoszony wyjątek informuje, że używasz elementu, w
<item />
którym nie możesz go użyć. Więc tak, twój problem jest prawdopodobnie związany z XML.Pierwszą rzeczą, którą robię, aby upewnić się, że piszę prawidłowy kod XML, jest skonfigurowanie IDE, aby poprawnie mapować schematy XSD. W PhpStorm możesz to zrobić, używając pomocnika pozostawionego do
xsi
-namespace:Gdy wszystko jest ustawione poprawnie, twoje IDE skonfiguruje dla ciebie uzupełnianie kodu i ostrzeże cię, jeśli robisz coś, co jest niedozwolone:
Mam nadzieję, że ci to pomoże.
źródło
bin/magento dev:urn:generate .idea/misc.xml
do generowania odwzorowania xsd dla PHPStorm. Będzie mógł rozwiązać wszystkie ścieżki urn z plików XML.