【发布时间】:2021-12-30 00:10:23
【问题描述】:
这里我有两个模型。用户和公司。
内部用户模型:
public function company()
{
return $this->hasOne(Company::class);
}
公司内部模型:
public function user()
{
return $this->belongsTo(User::class);
}
当我使用以下查询获取用户时:
User::query()
->with(array('company' => function($company) {
return $company->select('id', 'company_name');
}))->get()->map->only([
'id', 'email', 'has_employees', 'created', 'status', 'last_login_ago_day', 'company_name'
]);
此代码仅返回用户模型的特定列。我还想返回公司模型的特定列。我该怎么做?
【问题讨论】:
-
only方法只返回指定的键,因为你没有指定company_name,所以它不会返回它 -
我在退货单中添加了 company_name,但所有公司名称都为空值
-
您需要将
company添加到您的 only() 方法中。它将是一个包含所有公司字段的嵌套对象 -
是的,如果您还在公司函数中添加外键 id 是正确的
标签: laravel eloquent orm laravel-query-builder