哪里()
你可以使用 where()
方法从集合中选择某些项目。
$data = [
['name' => 'Taylor', 'coffee_drinker' => true],
['name' => 'Matt', 'coffee_drinker' => true]
];
$matt = collect($data)->where('name', 'Matt');
这段代码将选择名称为 Matt
的集合中的所有项目。在这种情况下,仅返回第二个项目。
嵌套
就像 Laravel 中的大多数数组方法一样,where()
也支持搜索嵌套元素。让我们通过添加第二个数组来扩展上面的例子:
$data = [
['name' => 'Taylor', 'coffee_drinker' => ['at_work' => true, 'at_home' => true]],
['name' => 'Matt', 'coffee_drinker' => ['at_work' => true, 'at_home' => false]]
];
$coffeeDrinkerAtHome = collect($data)->where('coffee_drinker.at_home', true);
这只会让泰勒回家,因为他在家里喝咖啡。如你所见,使用点符号支持嵌套。
附加
在创建对象集合而不是数组时,也可以使用 where()
对其进行过滤。然后,Collection 将尝试接收所有所需的属性。
Version >= 5.3
请注意,自 Laravel 5.3 以来,where()
方法将尝试在默认情况下松散地比较这些值。这意味着在搜索 (int)1
时,所有包含'1'
的条目也将被返回。如果你不喜欢这种行为,可以使用 whereStrict()
方法。