ber*_*ter 3 collections filter laravel eloquent
我在刀片模板中有这个集合过滤器,我只想显示值字段。实际上,我得到了过滤后的数组。
{{ $room->products->filter( function($value, $key){ if( $value['product_id'] == 71 ){ return $value['value']; } }) }}
Run Code Online (Sandbox Code Playgroud)
输出:
[{"id":10,"product_id":71,"room_id":2,"value":"3896"}]
Run Code Online (Sandbox Code Playgroud)
我只想显示值字段
你可以使用pluck这样的方法:
$room->products
->filter( function($value, $key) {
return $value['product_id'] == 71
})
->pluck('value');
Run Code Online (Sandbox Code Playgroud)
然后您可以使用该first方法仅获取第一个值:
$room->products
->filter( function($value, $key) {
return $value['product_id'] == 71
})
->pluck('value')
->first();
Run Code Online (Sandbox Code Playgroud)
但是,就您而言,如果您总是只需要过滤器中的一个结果,则可以使用该firstWhere方法。例如,您可以这样做:
{{ $room->products->firstWhere('product_id', 71)['value'] }}
Run Code Online (Sandbox Code Playgroud)