phplaravellaravel-10laravel-collection

Laravel (v10.45.1) collection unique method doesn't work expectedly


$oldValidUserPremiumPacks->unique('user_id')->pluck('user_id');

Thle line above gives me unique user ids but the line below doesn't:

$oldValidUserPremiumPacks->pluck('user_id')->unique('user_id');

I wonder why.


Solution

  • Maybe try without a selecting field on unique?

    $oldValidUserPremiumPacks->pluck('user_id')->unique();
    

    The contents of $oldValidUserPremiumPacks->pluck('user_id') is: [1, 1, 2, 3]

    Therefor $oldValidUserPremiumPacks->pluck('user_id')->unique('user_id') is trying to grab 1->user_id which doesn't work because 1 is an integer, not an object or array.

    The contents of $oldValidUserPremiumPacks->unique('user_id') is: [['user_id' => 1], ['user_id' => 2]].

    Aww, @TimLewis beat me to it.