Mackaybravo
@Mackaybravo
программист, фрилансер

Как правильно обработать цикл внутри цикла?

Привет. 2 дня уже пишу приложение, может я туплю, но я не могу понять, как обработать цикл внутри цикла. Задача такая, есть песни, и избранное песен. Допустим у меня в избранном 3 песни, и мне надо подсветить песни, которые у меня в избранном.
внутри цикла песен, я запускаю еще 1 цикл (из таблицы избранное), мне надо сравнить 1 раз для песни, есть ли она в избранном, то подсветить. Но цикл внутри цикла запускается 3 раза, верно, да, но как сделать, обрабатывал только избранное равное песне.
@foreach($musics as $music)
							
							<div class="list-music-karaoke">
								<div class="row">
									<div class="col-10">
										@foreach($musicsLiked as $musicLiked)
											@if($musicLiked->liked_music_id == $music->id && $musicLiked->liked_music_id == $token)
												<i class="fa fa-star" aria-hidden="true" data-music-id="{{ $music->id }}" data-music-cat-id="{{ $music->karaoke_category_id }}"></i>	
											@else
												<i class="fa fa-star-o" aria-hidden="true" data-music-id="{{ $music->id }}" data-music-cat-id="{{ $music->karaoke_category_id }}"></i>	
											@endif	
										@endforeach	
									</div>
									<div class="col-70">
										<h3>{{ $music->karaoke_music_name }}</h3>
										<p>{{ $music->karaoke_music_artist }}</p>
									</div>
									<div class="col-20">
										<h2>{{ $music->karaoke_music_code }}</h2>
										<h5>{{ $music->karaoke_music_type }}</h5>
									</div>
								</div>
							</div>

						@endforeach

Вот такая картина получается
95eb9d0fd799472ebaeb5bae3c7f16e3.jpg
  • Вопрос задан
  • 331 просмотр
Пригласить эксперта
Ответы на вопрос 2
root09
@root09
У collection есть функция contains, через нее проверяешь есть ли в ней нужный ид, и не нужен цикл
Ответ написан
Комментировать
Denormalization
@Denormalization
$musicsLiked сделать массивом с ID и проверять через in_array:

@if (in_array($music->id, $musicsLiked))
<i class="fa fa-star" aria-hidden="true" data-music-id="{{ $music->id }}" data-music-cat-id="{{ $music->karaoke_category_id }}"></i>	
@else
<i class="fa fa-star-o" aria-hidden="true" data-music-id="{{ $music->id }}" data-music-cat-id="{{ $music->karaoke_category_id }}"></i>	
@endif
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы