Php 将条件添加到Laravel has()中

Php 将条件添加到Laravel has()中,php,laravel,eloquent,Php,Laravel,Eloquent,我有一个名为answers的表,它的列是id,answers,batch,candidate\u id。我想得到批次号1下所有没有答案记录的考生 是否有方法将条件添加到此语句中(这在我的候选模型中) 我试过这种方法,但没有成功: return $this->has('answers', '=', 0)->whereBatch(1)->get(); 您需要whereHas: $this->whereHas('answers', function ($q) { $q-

我有一个名为answers的表,它的列是
id
answers
batch
candidate\u id
。我想得到批次号1下所有没有答案记录的考生

是否有方法将条件添加到此语句中(这在我的候选模型中)

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

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

您需要
whereHas

$this->whereHas('answers', function ($q) {
   $q->whereBatch(1);
}, '=', 0)->get();
顺便说一句,这与调用
has
并将闭包作为第5个参数完全相同:

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

您需要
whereHas

$this->whereHas('answers', function ($q) {
   $q->whereBatch(1);
}, '=', 0)->get();
顺便说一句,这与调用
has
并将闭包作为第5个参数完全相同:

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

您需要
whereHas

$this->whereHas('answers', function ($q) {
   $q->whereBatch(1);
}, '=', 0)->get();
顺便说一句,这与调用
has
并将闭包作为第5个参数完全相同:

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

您需要
whereHas

$this->whereHas('answers', function ($q) {
   $q->whereBatch(1);
}, '=', 0)->get();
顺便说一句,这与调用
has
并将闭包作为第5个参数完全相同:

$this->has('answers', '=', 0, 'and', function ($q) {
   $q->whereBatch(1);
})->get();
在文档中找到“如果您需要更大的权限,您可以使用whereHas和或whereHas方法在has查询中放置“where”条件“在文档中找到”如果您需要更大的权限,您可以使用whereHas和或whereHas方法在您的has查询中放置“where”条件“在文档中找到”“如果您需要更大的权限,您可以使用whereHas和orWhereHas方法在您的has查询中设置“where”条件”可在文档中找到“如果您需要更大的权限,您可以使用whereHas和orWhereHas方法在has查询中设置“where”条件”