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

问题描述 投票:0回答:1

我有适用于他们的隐私设置的资源。即社区和活动。我在所有需要隐私的资源上创建了一个morphOne关系

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

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

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

但是,当我尝试这样的个人资源时

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

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

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

laravel eloquent polymorphic-associations
1个回答
2
投票

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

$event->load('privacy');

这叫做Lazy Eager Loading

另一方面,在声明$profile->events()->with('privacy')->get();中,您尚未从数据库中检索事件模型。这就是为什么你可以在这里使用with方法,它将为查询添加一个连接。

© www.soinside.com 2019 - 2024. All rights reserved.