clb*_*clb 5 php relationship laravel eloquent
Laravel文档似乎表明该hasManyThrough声明只能用于两个级别的“深层”关系。那更复杂的关系呢?例如,a User有很多Subject,每个都有许多Deck,每个都有许多Card。使用声明简单地获取所有Deck属于的东西,但是所有属于的东西呢?UserhasManyThroughCardUser
正如评论中所述,hasManyThrough不支持这种级别的特异性。您可以做的事情之一是返回一个相反方向的查询构建器实例:
//App\User;
public function cards()
{
Card::whereHas('decks', function($q){
return $q->whereHas('subjects', function($q){
return $q->where('user_id', $this->id);
});
});
}
Run Code Online (Sandbox Code Playgroud)
我们从 出发Cards -> Decks -> Subjects。应该subjects有一个user_id我们可以锁定的列。
当从用户模型调用时,将如下完成:
$user->cards()->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |