gpt4 book ai didi

php - Laravel Eloquent : How to select not attached records in many to many relationship?

转载 作者:可可西里 更新时间:2023-11-01 07:13:21 24 4
gpt4 key购买 nike

我在用户和书籍之间建立了多对多关系。如何选择所有不属于特定用户的书籍?

简单但丑陋的方法是加载所有书籍,加载所有附属于用户的书籍并比较集合。但必须有一种优雅的方式,我就是想不通。

可以使用查询生成器和一些连接来完成,但是如何使用 Eloquent 来实现呢?

最佳答案

您可以为此使用 whereDoesntHave():

$userId = 1;
$books = Book::whereDoesntHave('users', function($q) use ($userId){
$q->where('user_id', $userId);
})->get();

此方法允许您通过相关模型的存在 (whereHas)(或在本例中不存在:whereDoesntHave)来过滤查询。


如果您想要所有未分配给任何用户的书籍,它会更简单一些:

$books = Book::doesntHave('users')->get();

关于php - Laravel Eloquent : How to select not attached records in many to many relationship?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28585458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com