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