Eloquent 关系在哪里
Eloquent where on relationship
我有 3 个模型:
class User extends Authenticatable
{
...
public function certifications()
{
return $this->belongsToMany('App\Certification', 'certification_user');
}
...
}
class Certification extends Model {
...
public function referential()
{
return $this->belongsTo('App\Referential');
}
...
}
class Referential extends Model
{
...
public function certifications()
{
return $this->hasMany('App\Certification');
}
...
}
我正在尝试获取当前用户认证的所有引用。
我能做到:
App\User::with("certifications");
...然后迭代,但我宁愿有 Collection
个 Referential
个对象
我想我应该做类似的事情
App\Referential::whereHas("certifications", function($query){
// something like "where certification in User::certifications()"
});
但我无法让它工作。
谢谢
您可以使用嵌套预加载:
$user = App\User::with('certifications.referential')->first();
$referentials = $user->certifications->pluck('referential');
whereHas()
查询如下所示:
App\Referential::whereHas('certifications.users', function($query) use($user) {
$query->where('users.id', $user->id);
});
我有 3 个模型:
class User extends Authenticatable
{
...
public function certifications()
{
return $this->belongsToMany('App\Certification', 'certification_user');
}
...
}
class Certification extends Model {
...
public function referential()
{
return $this->belongsTo('App\Referential');
}
...
}
class Referential extends Model
{
...
public function certifications()
{
return $this->hasMany('App\Certification');
}
...
}
我正在尝试获取当前用户认证的所有引用。 我能做到:
App\User::with("certifications");
...然后迭代,但我宁愿有 Collection
个 Referential
个对象
我想我应该做类似的事情
App\Referential::whereHas("certifications", function($query){
// something like "where certification in User::certifications()"
});
但我无法让它工作。
谢谢
您可以使用嵌套预加载:
$user = App\User::with('certifications.referential')->first();
$referentials = $user->certifications->pluck('referential');
whereHas()
查询如下所示:
App\Referential::whereHas('certifications.users', function($query) use($user) {
$query->where('users.id', $user->id);
});