【问题标题】:Get only specific attributes with from Laravel Collection and relation仅从 Laravel 集合和关系中获取特定属性
【发布时间】:2018-12-25 00:22:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    假设您在门禁卡上有一个“代码”字段,您可以尝试这样的操作:

    $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);
    

    【讨论】:

    • 有点乏味但有效,我希望只是将属性命名为唯一函数的参数数组。
    【解决方案2】:
    User::with(['access_card' => function($query){
        $query->select('code');
    } ])->select('id', 'email')->get();
    

    假设您想要用户 ID 和电子邮件以及访问卡,并且只有 card_code

    【讨论】:

    • 感谢提示,我会在其他地方试试这个。我忘了说我只想修改集合,这是一个干净的api响应json,集合已经被视图使用了
    猜你喜欢
    • 2016-11-19
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    相关资源
    最近更新 更多