我有一些应用了隐私设置的资源。即社区和事件。我在需要隐私的所有资源上创建了一个morphOne关系
public function privacy(){
return $this->morphOne('App\Privacy', 'privacy_resource');
}
我可以像这样查询集合的隐私设置
$profile->events()->with('privacy')->get();
但是当我像这样在单个资源上尝试尝试
$event->with('privacy')->get();
我反而从该资源中获得了所有物品的集合。
我意识到我可能在这里误用了get()
,实际上它获取了所有具有隐私设置的事件。除了get
之外,还有其他我应该在这里使用的东西吗?谢谢。
答案 0 :(得分:2)
检索模型后,可以使用load
代替with
。
$event->load('privacy');
另一方面,在语句$profile->events()->with('privacy')->get();
中,您尚未从数据库中检索事件模型。这就是为什么您可以在此处使用with
方法的原因,该方法会将联接添加到查询中。