向 Laravel 中添加条件 has()

Posted

技术标签:

【中文标题】向 Laravel 中添加条件 has()【英文标题】:Adding conditions to Laravel has() 【发布时间】:2014-11-21 06:45:59 【问题描述】:

我有一个名为 answers 的表,它的列是 idanswersbatchcandidate_id。我想得到所有在批次号 1 下没有答案记录的候选人。

有没有办法在这个语句中添加条件(这是在我的候选模型中)?

return $this->has('answers', '=', 0)->get();

我试过这种方法,但没有用:

return $this->has('answers', '=', 0)->whereBatch(1)->get();

【问题讨论】:

在文档中找到“如果您需要更多功能,您可以使用 whereHas 和 orWhereHas 方法在您的 has 查询中添加“where”条件” 【参考方案1】:

你需要whereHas:

$this->whereHas('answers', function ($q) 
   $q->whereBatch(1);
, '=', 0)->get();

顺便说一句,这与使用闭包作为第 5 个参数调用 has 完全相同:

$this->has('answers', '=', 0, 'and', function ($q) 
   $q->whereBatch(1);
)->get();

【讨论】:

以上是关于向 Laravel 中添加条件 has()的主要内容,如果未能解决你的问题,请参考以下文章

PHPStorm对laravel代码自动提示

Laravel 路由问题:自动重定向到根文件夹

如何在 laravel 中要求作曲家自动加载器?

如何从 Windows 命令提示符在 Laravel 中运行 PHPUnit

向 eloquent 资源添加过滤器以有条件地附加关系

Laravel 如果请求不为空添加 orWhere