Laravel 雄辩的多对多查询,其中

2022-08-30 18:48:47

在我的应用程序中,我已经从 更新了一个关系,并且我正在尝试找出一种持久保存关联功能的方法。one-to-manymany-to-many

假设我有两个相关的表,例如狗和主人。如果我有一系列的主人,并且我试图为这些主人获取狗ID列表,我应该如何雄辩地做到这一点?

这里也问了类似的问题:https://laracasts.com/discuss/channels/laravel/getting-many-to-many-related-data-for-an-array-of-elements

那么,如何获取数组中的模型?DogOwner

与关系相同,但对于 .$associatedDogs = Dog::whereIn('owner_id',$ListOfOwners)->get();One-To-ManyMany-to-Many


答案 1

使用 whereHas() 方法:

$dogs = Dog::whereHas('owners', function($q) use($ownerIds) {
    $q->whereIn('id', $ownerIds);
})->get();

答案 2

尝试

$associateDogs = Dog::with(['owners' => function($query) use ($listOfOwners) {
    $query->whereIn('id', $listOfOwners);
}])->get();

推荐