Aktualizacja Magento 2.2.0, typ atrybutu błędu jest niedozwolony

9

Udało mi się uaktualnić sklep Magento z 2.1.6 do 2.2.0. Backend działa bardzo dobrze, ale spotykam wyjątek w front office.

Komunikat o wyjątku mówi: Element „blok”, atrybut „typ”: atrybut „typ” jest niedozwolony.

Całą sytuację opisano w następnym poście od GitHub: https://github.com/magento/magento2/issues/11839

Jestem nowy w Magento. Czy mógłby mi dać link, który opisuje, skąd mam usunąć atrybut nieprawidłowego typu lub inne atrybuty lub skąd mogę go zrefaktoryzować?

Randhir Yadav
źródło
Wygląda na to, że psujesz tablicę konfiguracji Udostępnij pełny wyjątek, najlepiej część kodową tutaj.
Ricardo Martins
Jest to część kodu: 1 wyjątek (wyjątki): Wyjątek # 0 (Magento \ Framework \ Config \ Dom \ ValidationException): Element „blok”, atrybut „typ”: atrybut „typ” jest niedozwolony. Wiersz: 684 Element „blok”, atrybut „typ”: atrybut „typ” jest niedozwolony. Wiersz: 692 Ten sam kod powtarza się w wielu wierszach (699, 732, 737, 748, 753). Następnie otrzymuję wiele wierszy z: Magento \ Framework \ Config \ Dom -> _ initDom /vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(111): Magento \ Framework \ Config \ Dom -> __ construct

Odpowiedzi:

5

Te wiersze są najprawdopodobniej liniami XML układu:

Element 'block', attribute 'type': The attribute 'type' is not allowed.
Line: 776

Element 'block', attribute 'type': The attribute 'type' is not allowed.
Line: 783

Element 'block', attribute 'type': The attribute 'type' is not allowed.
Line: 816

Najprawdopodobniej w układowych plikach XML masz takie deklaracje

<block type="..."

Który nie odpowiada lib / internal / Magento / Framework / View / Layout / etc / elements.xsd i należy go wymienić na

<block class="..."
Orlangur
źródło
Miałeś rację. Było o układach XML. Ale, zgodnie z oczekiwaniami, napotkałem następujący błąd w module niestandardowym: Błąd krytyczny: Błąd nieprzechwycony: Nie można utworzyć instancji interfejsu TemplateMonster \ FilmSlider \ Api \ SliderRepositoryInterface Myślę, że powinienem dodać nowy blok kodu preferencji w pliku di.xml.
Zwykle preferencje powinny być dodawane przez moduły, które wprowadziły nowe interfejsy. Proszę zaznaczyć swoją odpowiedź jako odpowiednią, jeśli problem początkowy został rozwiązany przez sugerowane podejście, aby mógł pomóc innym. Jeśli problem ze SliderRepositoryInterface będzie trudny do rozwiązania, opublikuj go jako kolejne pytanie.
Orlangur
Rozwiązałem również ten problem. Dziękujemy za całe wsparcie!
@Iulian, jaką naprawę zrobiłeś? Wystąpił ten sam błąd z Templatemonster / FilmSlider ..
Rann