Laravel Collection过滤器-获取过滤器的值

时间:2019-03-04 10:57:36

标签: laravel filter collections eloquent

我在刀片模板中有此收集过滤器,我只想显示value字段。实际上,我将过滤后的阵列取回来。

{{ $room->products->filter( function($value, $key){ if( $value['product_id'] == 71 ){ return $value['value']; } }) }}

输出:

[{"id":10,"product_id":71,"room_id":2,"value":"3896"}]

我只想显示值字段

1 个答案:

答案 0 :(得分:1)

您可以这样使用pluck方法:

$room->products
     ->filter( function($value, $key) { 
          return $value['product_id'] == 71
     })
     ->pluck('value');

然后可以使用first方法仅获取第一个值。

但是,在您的情况下,如果始终只需要过滤器中的一个结果,则可以使用firstWhere方法。例如,您可以这样做:

{{ $room->products->firstWhere('product_id', 71)['value'] }}