我有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");..。然后进行迭代,但我宁愿有一个包含Referential对象的Collection
我想我应该这样做
App\Referential::whereHas("certifications", function($query){
// something like "where certification in User::certifications()"
});但是我不能让它工作。
谢谢
发布于 2018-08-23 22:09:44
您可以使用嵌套的紧急加载:
$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);
});https://stackoverflow.com/questions/51986312
复制相似问题