查询与Eloquent的关系



我有两个模型。模型CCD_ 1具有一个(关系(CCD_。

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

public function contracts()
{
return $this->hasMany('AppModelsSGCContractsContract', 'held_by_company_id', 'id');
}

我试图获取与一家公司关联的所有合同,但由于合同表有很多列,我只想检索2列。当我执行关系职能时,合同是空的。

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

$requested_company_data = Company::with('contracts')->findOrFail($request->company_id)->toArray();

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

$requested_company_data = Company::with([
'contracts' => function ($query) {
$query->select('id', 'contract_code');
}
])->findOrFail($request->company_id)->toArray();

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

您可以使用with:column1,column2指定列,因为Laravel 5.5:

$requested_company_data = Company::with('contracts:id,contract_code')
->findOrFail($request->company_id)
->toArray();

最新更新