Laravel 5.5 - where访问关系
Laravel 5.5 - where access relationship
在 Laravel 5.5 中,我试图获取 member->user->membership->id
为 user->membership->id
的所有成员。例如:
$members = Member::where($member->user->membership->id,$user->membership->id)->get();
显然$member
还没有设置。那么,我怎样才能访问这种关系?
模型中已定义的函数:
会员
public function user() {
return $this->belongsTo('App\User', 'account_id');
}
会员资格
public function user() {
return $this->hasMany('App\User');
}
用户
public function membership() {
return $this->belongsTo('App\Membership');
}
public function member() {
return $this->hasMany('App\Member','account_id');
}
您可以使用 whereHas 来执行此操作:
Member::whereHas('user', function($q) use ($user) {
$q->where('membership_id', $user->membership_id);
})->get();
我假设您在用户模型中有 membership_id
,因为您正在调用 user->membership->id
。
并且您需要定义Member 和User 之间的关系。像这样(在成员模型中),但考虑到您遵循命名约定:
public function user() {
return $this->belongsTo(User::class);
}
在 Laravel 5.5 中,我试图获取 member->user->membership->id
为 user->membership->id
的所有成员。例如:
$members = Member::where($member->user->membership->id,$user->membership->id)->get();
显然$member
还没有设置。那么,我怎样才能访问这种关系?
模型中已定义的函数:
会员
public function user() {
return $this->belongsTo('App\User', 'account_id');
}
会员资格
public function user() {
return $this->hasMany('App\User');
}
用户
public function membership() {
return $this->belongsTo('App\Membership');
}
public function member() {
return $this->hasMany('App\Member','account_id');
}
您可以使用 whereHas 来执行此操作:
Member::whereHas('user', function($q) use ($user) {
$q->where('membership_id', $user->membership_id);
})->get();
我假设您在用户模型中有 membership_id
,因为您正在调用 user->membership->id
。
并且您需要定义Member 和User 之间的关系。像这样(在成员模型中),但考虑到您遵循命名约定:
public function user() {
return $this->belongsTo(User::class);
}