Home > Software design >  Laravel unique identifiers for latest foreign key in collection
Laravel unique identifiers for latest foreign key in collection

Time:09-30

I have a Laravel collection with record IDs and foreign keys:

{id=1, foreign_id=1},
{id=2, foreign_id=1},
{id=3, foreign_id=2},
{id=4, foreign_id=3},
{id=5, foreign_id=2}

I expect:

{id=2, foreign_id=1},
{id=5, foreign_id=2},
{id=4, foreign_id=3}

I want to search Laravel query builder for unique values ​​for foreign_id if id in collection occurs more than 1 time. I want then to give latest foreign_id.

CodePudding user response:

Try $collection->unique('foreign_id');

CodePudding user response:

Here I'm giving an example, You can check by yours,

$a = collect([
        [
            'id'         => 1,
            'foreign_id' => 2
        ],
        [
            'id'         => 2,
            'foreign_id' => 1
        ],
        [
            'id'         => 3,
            'foreign_id' => 2
        ],
        [
            'id'         => 4,
            'foreign_id' => 3
        ],
        [
            'id'         => 5,
            'foreign_id' => 2
        ],
    ]);
    $a->unique('foreign_id');

CodePudding user response:

The easiest way to do it is to sort collection by "id" in descending order and than use unique method by "foreign_id"

$myCollection->sortByDesc('id')->unique('foreign_id')
  • Related