首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使隐儿关系/Laravel雄辩

使隐儿关系/Laravel雄辩
EN

Stack Overflow用户
提问于 2022-02-26 11:38:51
回答 1查看 182关注 0票数 0

模型结构:

  • AccessoryGroup (hasMany:accessories)
  • Accessory (belongsTo:accessory_group)

))

获得所有配件组与配件(与accesory_group)

accessories中,我需要accessory_group关系,以创建一些自定义属性(附加)

但是在使用之后,我不会不使用我的Api从accessories->accessory_group返回关系

代码语言:javascript
复制
AccessoryGroup
            ::with([
                'accessories' => function ($query) {
                    $accessory = $query->getRelated();
                    // Can I somehow use this $accessory relation for my problem
                    // something like $accessory->makeHidden('accessory_group'); - not working
                },
                'accessories.accessory_group',
            ])
            ->get();

当我在附件模型中添加时,我得到了我想要的东西,但是它总是隐藏的(总是需要使用makeVisible)

EN

回答 1

Stack Overflow用户

发布于 2022-02-26 19:49:07

从您的问题中,我得到的是您不希望将关系返回给您的API响应。如果在父模型中有关系,那么我不希望再次从relation加载数据,所以建议您在控制器部分中这样做,以构建业务逻辑。

但是针对你当前的问题,你可以这样做

代码语言:javascript
复制
$accessoryGroups = AccessoryGroup::query()
                 ->with([
                     'accessories',
                     'accessories.accessory_group',
                 ])
                 ->get();

// do your work here

// unset the relationship after your work complete
$accessoryGroups->each(function($accessoryGroup) {
    $accessoryGroup->accessories->each(function($category) {
        $category->unsetRelation('accessory_group');
    });
});

// return api response
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71276315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档