У меня есть колелкция комментов, в которой одни комменты могут являться ответами на другие, и потому должны быть выведены внутри контейнера коммента, на который отвечают. При этом у них также могут быть ответы - типичная рекурсия.
Проблема - я вывожу комменты с условием в контейнер, но из-за внешнего цикла они появляются потом и во внешнем контейнере, как самостоятельные. Очевидно, надо их удалять при выводе. Но я уже чаc бьюсь и не могу понять, почему они не удаляются из коллекции и продолжают появляться во внешнем цикле. Уже и клонировал коллекцию, и по ссылке передавал - бестолку.
comments.blade.php
<div class="comments__items">
<?php $comments = clone $entry->comments; // Тут обычная коллекция Laravel/ Eloquent ?>
@forelse($comments as $key => $comment)
@include('common.comment')
@empty
@if($entry->enable_comments === true)
<div class="comments__null">Пока нет ни одного комментария</div>
@endif
@endforelse
</div>
comment.blade.php
<div class="comments__thread-container">
<div class="comment">
Тут выводится сам коммент
</div>
<?php $prev_comm_id = $comment->id ?>
@foreach($comments as $key => $comment)
@if($comment->reply_to == $prev_comm_id {{--Если является ответом на текущий коммент) --}}
<?php $comments->forget($key); // Удалить из коллекции ?>
@include('common.comment') <!-- И вывести (с собственными ответами) -->
@endif
@endforeach
</div>