当前位置: 首页 > 知识库问答 >
问题:

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

孟凯泽
2023-03-14

我想从最终结果中删除一些属性,并在这里找到了这个从Laravel集合中仅获取特定属性

这适用于顶层,但需要从相关项目中删除一些属性,例如用户有一个访问卡,并且访问卡的属性中有一些长文本详细信息。

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

共有2个答案

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

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

臧欣怿
2023-03-14

假设您在访问卡上有一个“代码”字段,您可以尝试这样做:

$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);
 类似资料:
  • 我一直在查看Laravel系列的文档和API,但似乎没有找到我想要的: 我想从集合中检索具有模型数据的数组,但只获取指定的属性。 例如,类似于,其中集合实际上包含用户的所有属性,因为它们在其他地方使用,但在这个特定位置,我需要一个包含userdata的数组,并且只包含指定的属性。 在拉雷维尔,似乎没有一个帮手来帮你我怎样才能用最简单的方法做到这一点?

  • 在Laravel中,如果执行查询: ...然后,是模型对象的集合。(基本上是一系列模型。) 但是,此数组的键仅为: ...所以如果我想改变,比如说,为24的对象,我不能这样做: ...因为这只会改变数组中的第25个元素,而不是id为24的元素。 如何通过任何属性/列(例如但不限于id/Color/age/etc)从集合中获取单个(或多个)元素? 当然,我可以这样做: ...但是,那太恶心了。 当然

  • 但是,它没有从地址表返回正确的。我怎么能那么做? 这是我得到的错误消息:

  • 问题内容: 我有一个具有单向一对多关系的类,如下所示: 通常,获取此订单的内容很简单: 但是无论出于何种原因,我都可能希望以某种方式过滤结果并仅以最快的方式检索部分商品集合,例如高于一定价格,低于一定库存的所有商品(不返回然后全部过滤)然后)。为此,我将运行HQL查询以检索特定订单的商品,并将更多内容添加到我的where子句或查询对象中。 凭直觉我会想要这种行为(这是完全错误的): 但是当然这是错

  • 我有两个Laravel雄辩的模型,和,从产品到ProductCategory之间有一个名为的关系。 我已经让模型集合在显示刀片中的循环中迭代,但希望能够根据关系获得产品数量的计数。。。 IE:在集合中20个模型的结果集中,可能有5个电机、5个齿轮箱和5个Acme小部件。我试图找到一种方法来输出作为结果一部分返回的类别列表,以及与每个返回类别相关的记录数。 产品模型 产品类别模型 控制器方法 期望输

  • 所以,用户有很多和最后插入的记录将是用户帐户余额。>表 我尝试在用户模型中使用类似的东西 我得到这样的数据 结果如下所示: 但是我想要的,回报应该是这样的下面json: 我的问题是,如何用拉雷维尔雄辩恰当的方式制作这样的东西?因此,我只能使用像