Laravel Collection Filter - 获取过滤器的值

标签 laravel filter collections eloquent

我在 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/

相关文章:

php - 在 Laravel 中创建 mysql 帐户用户和数据库

PHP-Laravel : Raw Sql Query showing Error in controller

arrays - Swift 中的数组操作和重新排序

c# - 集合的一个字段上的模式匹配

java - 使用 spring 表达式语言 (SpEL) 更新集合中的属性

java - API java 5 及更多 : should I return an array or a Collection?

php - Laravel 5 中的钩子(Hook)?

php - 请求类之间的差异

ios - 按字符串属性的首字母过滤数组

Python Pandas groupby : how to do conditional aggregation dependent on other column