哪裡()

你可以使用 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() 方法。