Laravel Blade-通过ID检索元素

时间:2018-10-04 11:03:11

标签: php json laravel-5.6 laravel-blade

我想通过ID检索元素。

在我的刀片文件中:

{{ $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的一些数据,我无法使用标准关系

我已经尝试过此{{ $auctionStatuses['3'] }} 但这显然不存在。

我猜很理想,我想做这样的事情

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

有没有一种方法可以做我需要的事情而无需遍历json数组?

2 个答案:

答案 0 :(得分:3)

仅一行:-

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

说明

toArray()将laravel集合转换为数组的方法。

array_search将搜索数组元素并返回索引

array_column将返回带有指定列的值

答案 1 :(得分:1)

您可以使用:

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

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