Ludwig
Ludwig

Reputation: 1821

Laravel - get the only item properties from collection without the foreach loop

I wonder is there a way to get an only item properties without a foreach loop. Since I have a query where in most of the cases there will be only one item in collection, and I need to change the status in the pivot table for only that case, I wonder is there some elegant way of doing this without the foreach loop. This is the case I am talking about:

$opponents = $quiz
            ->players()
            ->where('id', '!=', $player->id)
            ->get();

        if ($opponents->count() < 2) {
            $quiz->status = 'finished';
            $quiz->save();

            foreach ($opponents as $opponent) {
                  $quiz->players()->updateExistingPivot($opponent->id, ['status' => 'dropped']);
            }            
         }

Upvotes: 0

Views: 751

Answers (1)

Shivam Chawla
Shivam Chawla

Reputation: 731

You can use the function first() like this:

 $quiz->players()->updateExistingPivot($opponents->first()->id, ['status' => 'dropped']);

Upvotes: 1

Related Questions