Laravel Проверка наличия в коллекции внешнего ключа

Мне было интересно, если есть функция или что-то еще, где вы можете получить другой элемент из коллекции, чем первичный ключ … Например, если голоса имеют внешний ключ ‘user_id’, как я могу это проверить? В документации по laravel был только пример проверки первичного ключа с помощью функции has (). Может кто-нибудь мне помочь?

Пример, который проверяет, есть ли голосование с id = 2

@foreach($projects as $project)
@if ($project->votes->contains(2))
//
@endif
@endforeach

Я хотел бы что-то проверить, если есть голосование, у которого есть ‘user_id’ = подписанный идентификатор пользователя

@foreach($projects as $project)
@if ($project->votes->contains('user_id' == Auth::id()))
//
@endif
@endforeach

7

Решение

if ($votes->contains('user_id', auth()->id())) {
//
}
13

Другие решения

В вашей модели

public static checkForeign($thisId) {
( $thisId == Auth::user()->id ) ? return true : return false;
}

В представлении

@if ( ModelName::checkForeign($project->votes->id) )
// Do something
@endif
1