Как получить индекс элемента в коллекции Laravel - PullRequest
0 голосов
/ 07 декабря 2018

Как получить индекс элемента в коллекции?Мой код:

$users = User::has('posts')->withCount('posts')->orderBy('posts_count')->take(50)->get();

if($users->contains(Auth::id())){
    //get the index of auth user id
 }

Спасибо за помощь

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете использовать метод сбора search(): https://laravel.com/docs/5.7/collections#method-search

$users = User::has('posts')->withCount('posts')->orderBy('posts_count')->take(50)->get();

$userIndex = $users->search(function($user) {
    return $user->id === Auth::id();
});

Только будьте осторожны, потому что индекс может быть 0:

// DON'T do this
if($userIndex) {
    // this will get skipped if the user is the first one in the collection
}

// Do this instead
if($userIndex !== false) {
    // this will work
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...