无法在多态关系上获得正确的 Eloquent 关联

Can't get correct Eloquent association on polymorphic relationship

我有应用了隐私设置的资源。即社区和事件。我在所有需要隐私的资源上创建了 morphOne 关系

public function privacy(){
    return $this->morphOne('App\Privacy', 'privacy_resource');
}

我可以像这样查询集合的隐私设置

$profile->events()->with('privacy')->get();

但是当我像这样在单个资源上尝试这样做时

$event->with('privacy')->get();

我改为从该资源中获取所有项目的集合。

我意识到我可能在这里误用了 get(),它实际上获取了所有具有隐私设置的事件。我应该在这里使用 get 以外的东西吗?谢谢你。

检索到模型后,您可以使用 load 而不是 with

$event->load('privacy');

这叫做Lazy Eager Loading

另一方面,在语句 $profile->events()->with('privacy')->get(); 中,您尚未从数据库中检索事件模型。这就是您可以在此处使用 with 方法的原因,该方法将向查询添加连接。