我在 Blade 模板中有这个集合过滤器,我只想显示值字段。实际上,我得到了过滤后的数组。
{{ $room->products->filter( function($value, $key){ if( $value['product_id'] == 71 ){ return $value['value']; } }) }}
输出:
[{"id":10,"product_id":71,"room_id":2,"value":"3896"}]
我只想显示值字段
最佳答案
您可以使用 pluck
像这样的方法:
$room->products
->filter( function($value, $key) {
return $value['product_id'] == 71
})
->pluck('value');
然后你可以使用 first
只获取第一个值的方法:
$room->products
->filter( function($value, $key) {
return $value['product_id'] == 71
})
->pluck('value')
->first();
但是,在您的情况下,如果您总是只需要来自过滤器的一个结果,您可以使用 firstWhere
方法。例如,您可以这样做:
{{ $room->products->firstWhere('product_id', 71)['value'] }}
关于Laravel Collection Filter - 获取过滤器的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54981820/