首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Eloquent查询关系

用Eloquent查询关系
EN

Stack Overflow用户
提问于 2021-03-12 20:54:20
回答 1查看 24关注 0票数 0

我有两个模型。Contract hasOne (relation) Company模型。

Company模型上,我有以下关系:

代码语言:javascript
复制
public function contracts()
{
    return $this->hasMany('App\Models\SGC\Contracts\Contract', 'held_by_company_id', 'id');
}

我正在尝试获取与一家公司关联的所有合同,但由于contract表有很多列,所以我只想检索2个。当我对关系执行函数时,合同是空的。

因此,如果我查询所有关于合同的内容,我就会得到公司数据和相关合同:

代码语言:javascript
复制
$requested_company_data = Company::with('contracts')->findOrFail($request->company_id)->toArray();

考虑到优化,因为我想要2列,所以我想选择2列。当我这样做时,关系是空的,但这是错误的,因为我知道公司ID 2有合同。

代码语言:javascript
复制
$requested_company_data = Company::with([
    'contracts' => function ($query) {
        $query->select('id', 'contract_code');
    }
])->findOrFail($request->company_id)->toArray();

我真的看不到错误...有人能照亮我吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-03-12 21:01:50

从Laravel 5.5开始,您可以使用with:column1,column2指定列:

代码语言:javascript
复制
$requested_company_data = Company::with('contracts:id,contract_code')
            ->findOrFail($request->company_id)
            ->toArray();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66600298

复制
相关文章

相似问题

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