此代码运行完美。
InspectionClaim::with(['claimType', 'inspectionClaimReviews' => function($query){
$query->join('employees', 'inspection_claim_reviews.reviewer_id', '=', 'employees.id');
$query->join('designations', 'employees.designation_id', '=', 'designations.id');
//$query->select('inspection_claim_reviews.created_at', 'employees.name', 'designations.title'); // when I am adding select function it returns empty value
}])
->get();
但是当我使用select函数指定我需要的列时,则返回空。
答案 0 :(得分:0)
我认为该问题与join
无关。
如果您在急切加载中使用select
进行子查询,则需要至少,包括主键和/或关系键(取决于关系类型)
在您的情况下,假设您在InspectionClaim
类中定义了关系,似乎inspectionClaimReviews
和InspectionClaim
之间的关系是一对多的:
public function inspectionClaimReviews()
{
return $this->hasMany(InspectionClaimReview::class,'inspection_claim_id');
}
因此,当您执行select
时,至少应包括此字段inspection_claim_reviews.inspection_claim_id
。