从Laravel集合和关系中仅获取特定属性

时间:2018-07-17 10:23:14

标签: php laravel

我想从最终结果中删除一些属性,并在这里找到 Get only specific attributes with from Laravel Collection

这适用于顶层,但是需要从相关项目中删除一些属性 假设用户拥有一个access_card,而access_card具有一些长文本详细信息作为其属性之一。

我想从最终结果中删除该属性。链接中提到的方法可以吗?

2 个答案:

答案 0 :(得分:0)

假设访问卡上有一个“代码”字段,则可以尝试类似的操作:

$users = Users::with('access_card')->get();
$subset = $users->map(function ($user) {
    return collect(
        [
            'id' => $user->id,
            'email' => $user->email,
            'access_card' => $user->access_card->code,
        ]);
});

dd($subset);

答案 1 :(得分:0)

User::with(['access_card' => function($query){
    $query->select('code');
} ])->select('id', 'email')->get();

假设您要用户名和电子邮件以及门禁卡和仅card_code