向 eloquent 中的关系结果添加附加列
Adding additional column to the result of relationship in eloquent
我有两个模型。它们都是枢轴,因为它们连接其他表。但也和他们自己有关系。
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');
}
}
我想获取 CompanyUserProduct 的所有实体,但要使用 CompanyUser
中的附加列 user_id
,因此我可以对集合执行 pluck('user_id')
并立即获取所有 ID。是否可以在 Eloquent 中完成,还是我必须使用查询生成器?
$companyUsers = CompanyUserProduct::with('companyUser')->get();
你可以做到
$companyUsers = CompanyUserProduct::with('companyUser:id,user_id')->get();
检索 CompanyUserProduct
以及 compantUser
的 id
和 user_id
。
注意:无论您 primary key
还是 companyUser
- 确保您也 select 它。 (在本例中假定为 id
)
检索集合后,每个 CompanyUserProduct
的 user_id
将在 companyUser
下
因此,您可以使用点符号来提取它。
例如:
$userIds = $companyUsers->pluck('companyUser.user_id');
我有两个模型。它们都是枢轴,因为它们连接其他表。但也和他们自己有关系。
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');
}
}
我想获取 CompanyUserProduct 的所有实体,但要使用 CompanyUser
中的附加列 user_id
,因此我可以对集合执行 pluck('user_id')
并立即获取所有 ID。是否可以在 Eloquent 中完成,还是我必须使用查询生成器?
$companyUsers = CompanyUserProduct::with('companyUser')->get();
你可以做到
$companyUsers = CompanyUserProduct::with('companyUser:id,user_id')->get();
检索 CompanyUserProduct
以及 compantUser
的 id
和 user_id
。
注意:无论您 primary key
还是 companyUser
- 确保您也 select 它。 (在本例中假定为 id
)
检索集合后,每个 CompanyUserProduct
user_id
将在 companyUser
下
因此,您可以使用点符号来提取它。
例如:
$userIds = $companyUsers->pluck('companyUser.user_id');