Ошибка с циклом @foreach в Laravel 12.x + Livewire 3.6.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Ошибка с циклом @foreach в Laravel 12.x + Livewire 3.6.

Сообщение Anonymous »

Я использую Laravel v12 с Filament v4 и TailwindCSS v4.
Я хотел создать сайт с вкладками, которые являются компонентом Livewire внутри filament/Page. В этих компонентах Livewire у меня есть 3 вкладки, каждая из которых содержит компонент Livewire внутри цикла @foreach:

Код: Выделить всё





@foreach($availableTabs as $tabKey => $tab)
 $tabOption === $tabKey,
$inactiveTabClasses => $tabOption != $tabKey,
])>
 $tabOption === $tabKey,
'text-gray-400 group-hover:text-gray-500 dark:text-gray-500 dark:group-hover:text-gray-400' => $tabOption != $tabKey,
])
>


{{$tab['label']}}

@endforeach





@if($tabOption === 'activeSubs')
@if($subscriptions->count() >= 1)

@foreach($subscriptions as $subscription)



@endforeach

@else

Brak aktywnych subskrypcji
W przypadku problemów, pomoc uzyskasz za pomocą kontaktu z nami!

@endif
@elseif($tabOption === 'expiredSubs')

@elseif($tabOption === 'upgradeCompany')

@endif


@livewire('company-subscriptions-feature-component')


Не обращайте внимания на качество кода, поскольку это не последняя версия этой страницы.
Проблема здесь:

Код: Выделить всё

@if($tabOption === 'activeSubs')
@if($subscriptions->count() >= 1)

@foreach($subscriptions as $subscription)



@endforeach

@else

Brak aktywnych subskrypcji
W przypadku problemów, pomoc uzyskasz za pomocą kontaktu z nami!

@endif
@elseif($tabOption === 'expiredSubs')

@elseif($tabOption === 'upgradeCompany')

@endif

Внутри находится еще один блейд-файл, у которого есть проблема, о которой я упоминал.

Код: Выделить всё

@if($missingSubscriptions->count() >= 1)

@foreach($missingSubscriptions as $subscription)



@endforeach

@else




@endif
Если $missingSubscriptions равно 2 или больше, программа работает как положено, но если $missingSubscriptions равен «1», ошибка выдачи сайта:

livewire.js?id=df3a17f2:4661 Неперехваченный компонент не найден:
adsdzg1lAHJIVEntIZn3

Кроме того, этот код выше генерирует это в DOM:



Хорошо
Неправильно




Кроме того, этот приведенный выше код генерирует это в DOM:
Где рабочий код с вводом между @foreach и div генерирует это:



Изображение


Изображение




Основное отличие состоит в том, что (ошибка) генерирует с дочерними элементами, когда «хороший код» этого не делает. Чтобы это работало, мне пришлось добавить новую строку после @foreach(xx as xx) или удалить элемент div и оставить в покое.
Может кто-нибудь объяснить мне, почему это происходит или это ошибка?
PS: Я пытался установить провод:key для разных элементов, но это ничего не меняет, работает только ввод и один livewire().

Подробнее здесь: https://stackoverflow.com/questions/798 ... vewire-3-6
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»