Laravel 哪里()

示例

您可以使用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()。然后,集合将尝试接收所有所需的属性。

5.3

请注意,自Laravel 5.3起,该where()方法将默认尝试松散比较这些值。这意味着在搜索时(int)1,包含的所有条目'1'也会被返回。如果您不喜欢这种行为,则可以使用该whereStrict()方法。