laravel - 如何获得没有关系的模型记录?

标签 laravel eloquent

在 Laravel 中是否有一种 'whereDoesNotHave' 的方法来获取没有关系的记录?

我有一个查询来检查用户是否有团队,或者他们的名字是 David,但不知道如何编写此查询:

User::where(function($query){ 
     $query->where('name', 'David')->orWhere($this->teams->count() , '<' , 1);
})
  ->get();

我需要这样的东西。

更新

忘了说了——关系是多对多的,用户可以有多个团队

最佳答案

您可以使用 doesntHave() 方法:

$users = User::doesntHave('teams')->orWhere('name', 'David')->get();

如果你需要“或”它,第二个参数可以让你改变它:

$users = User::where('name', 'David')->doesntHave('teams', 'or')->get();

关于laravel - 如何获得没有关系的模型记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34783514/

相关文章:

mysql - Laravel 中的条件 `orderBy` 或 `DB::Raw` inside `orderBy`

php - 仅获取在 Laravel Eloquent 中取消请求两次或多次的用户

php - 查询 Laravel Eloquent 多对多,其中所有 id 都相等

laravel - 如何解决Facade\Ignition\Http\Middleware\IgnitionEnabled?

php - Laravel 保存关系

php - 原始查询到 Eloquent

php - laravel if 语句不起作用

laravel - 包服务提供商和应用程序服务提供商有什么区别?

php - Laravel - 在自定义验证中使用验证规则

php - 不能将 openssl 扩展用于 SSL/TLS 保护