使用 Pluck 从集合中提取某些值

你经常会发现自己拥有一组数据,你只对部分数据感兴趣。

在下面的示例中,我们获得了一个活动参与者列表,我们希望为导游提供一个简单的名称列表。

// First we collect the participants
$participants = collect([
    ['name' => 'John', 'age' => 55],
    ['name' => 'Melissa', 'age' => 18],
    ['name' => 'Bob', 'age' => 43],
    ['name' => 'Sara', 'age' => 18],
]);

// Then we ask the collection to fetch all the names
$namesList = $partcipants->pluck('name')
// ['John', 'Melissa', 'Bob', 'Sara'];

你还可以将 pluck 用于对象集合或带有点表示法的嵌套数组/对象。

$users = User::all(); // Returns Eloquent Collection of all users
$usernames = $users->pluck('username'); // Collection contains only user names

$users->load('profile'); // Load a relationship for all models in collection

// Using dot notation, we can traverse nested properties
$names = $users->pluck('profile.first_name'); // Get all first names from all user profiles