Laravel Blade - получить элемент по id - PullRequest
0 голосов
/ 04 октября 2018

Я хотел бы получить элемент по идентификатору.

внутри моего блейд-файла:

{{ $auctionStatuses }}

Это выводит:

[
    {
        "id":1,
        "name":"Awaiting customer action",
        "created_at":"2018-10-04 10:14:08",
        "updated_at":"2018-10-04 10:14:08"
    },
    {
        "id":2,
        "name":"Transfer in progress",
        "created_at":"2018-10-04 10:15:11",
        "updated_at":"2018-10-04 10:15:11"
    },
    {
        "id":3,
        "name":"Completed",
        "created_at":"2018-10-04 10:15:14",
        "updated_at":"2018-10-04 10:15:14"
    }
] 

Я хотел бы вывести имя при ссылке по полю id

Из-за некоторых данных, поступающих из mongodb, я не могу использовать стандартные отношения

IЯ пытался это {{ $auctionStatuses['3'] }}, но этого, очевидно, не существует.

я думаю, в идеале, я хотел бы сделать что-то вроде этого

{{ $auctionStatuses[*]->id['3']->name }}

Есть лиспособ сделать то, что мне нужно, без цикла по массиву JSON?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Вы можете использовать:

$auctionStatuses->firstWhere('id',3)->name;

https://laravel.com/docs/5.7/collections#method-first-where

0 голосов
/ 04 октября 2018

Одной строкой: -

$auctionStatuses->toArray()[array_search(3,array_column($auctionStatuses->toArray(),'id'))]['name']

Объяснение

toArray() Метод преобразования коллекции Laravel в массив.

array_search Будет искать массивэлемент и возвращая индекс

array_column будет возвращать значения с указанным столбцом

...