Laravel получение идентификаторов коллекции без foreach - PullRequest
0 голосов
/ 24 апреля 2020

Мой код в настоящее время выглядит следующим образом:

foreach ($things as $thing) {
            $ids[] = $thing->id;
        }
dd(Other::whereIn('thing_id', $ids)->get());

В модели вещей много других

    public function others()
    {
        return $this->hasMany(Other::class);
    }

Это работает, но могу ли я достичь этой функциональности без использования foreach? Это не кажется чистым для меня. Я пытался передать всю коллекцию куда-то вроде этого:

dd(Other::whereIn('thing_id', $things)->get());

, но это вернулось только там, где id был 1.

Я ищу помощь в очистке этого кода, любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

Существует функция под названием "pluck"

. Вы можете применить ее к коллекции следующим образом:

$collection->pluck('id');

. Более подробно можно увидеть в документах

https://laravel.com/docs/7.x/collections#method -pluck

0 голосов
/ 24 апреля 2020

Я уже нашел способ немного его почистить, вместо foreach я могу просто использовать:

$ids=$things->pluck('id');

Если есть более чистый способ, пожалуйста, покажите мне:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...