Похоже на проблему логики c, основанную на порядке l oop профилей.
Вы, по сути, говорите, что если самый первый профиль в l oop не является выпускником, затем отобразите пункт меню Update Profile 1
. То есть Update Profile 1
ВСЕГДА будет отображаться, если только идентификатор выпускника не является самым первым идентификатором в l oop.
Чтобы исправить, есть одна возможность изменить вашу логику c вокруг, чтобы взять это учитывается:
Редактировать на основе комментария : если вы просто хотите отобразить другое меню, если Auth::User
соответствует alumni_id
, снимите проверку $loop
и найдите матч за пределами аль oop. (Я напишу это долгими путями для понимания - вы можете объединить для эффективности). Предложите назвать $profiles
во множественном числе - это заставило меня задуматься над этим.
$alumni_ids = $profile->pluck('alumni_id')->toArray();
@if(in_array(Auth::user()->id, $alumni_ids))
<a class="dropdown-item" href="{{ url('alumni/updateProfile') }}">
Update Profile
</a>
@else
<a class="dropdown-item" href="{{ url('alumni/createNewProfile') }}">
Create New Profile
</a>
@endif
Я не уверен, каково ваше точное намерение с точки зрения того, когда показывать что, но приведенное выше должно показать, почему это не работает, и дайте представление о том, как изменить его, чтобы он работал ближе к тому, что вы хотите.
Вы также можете рассмотреть возможность замены чека для alumni_id
на одиночный in_array()
или в collection
чеке. за пределами l oop, чтобы узнать, за кем вы охотитесь - сравнивая l oop И идентификатор - это то, что доставляет вам неприятности.