【发布时间】:2021-03-29 06:43:44
【问题描述】:
我有两个模型。它们都是枢轴,因为它们加入了其他表。但他们也与自己有关系。
class CompanyUser extends Pivot
{
protected $table = 'company_user';
public function companyUserProducts() {
return $this->hasMany('App\CompanyUserProduct','company_user_id');
}
}
class CompanyUserProduct extends Pivot
{
protected $table = 'company_user_product';
public function companyUser() {
return $this->belongsTo('App\CompanyUser','company_user_id');
}
}
我想从 CompanyUser 中获取 CompanyUserProduct 的所有实体,但要使用附加列 user_id,因此我可以在集合上执行 pluck('user_id') 并一次获取所有 ID。是否可以在 Eloquent 中完成,还是必须使用 Query Builder?
$companyUsers = CompanyUserProduct::with('companyUser')->get();
【问题讨论】:
-
...with('companyUser:id,user_id')->get()不起作用吗?您应该可以先pluck('companyUser.user_id') I think. Or maybe you shouldflatten` 集合,然后才能pluck。 -
没有测试,但也许你可以这样做:
CompanyUserProduct::with('companyUser')->addSelect('company_user.user_id')->get()? -
company_user_product 表的
company_user_id引用 company_user 表上的user_id或id列 -
谢谢@MohamedMufeed。您的解决方案有所帮助。你能发布答案,我会接受吗?
标签: php laravel eloquent laravel-7