追加 - > where()子句基于条件

时间:2016-07-21 22:23:28

标签: php mysql laravel-5 fluent

我想根据某些条件将where子句附加到查询中,问题是我检查它是否从数据库返回一行的方式总是返回true。

如果我在一行中进行查询,请执行以下操作:

$test= DB::table('users')->where('email', $email)->where('password', $password)->first();

它按预期工作,如果找到一行是真的,反之亦然,但如果我追加到这样的查询,它总是正确的(这是有道理的,但我如何检查它实际上是从db?):

$test= DB::table('users');
$test->where('email', $email);
 $test->where('password', $password);
$test->first();

if ($test) {
       // always true
 }

1 个答案:

答案 0 :(得分:1)

语句$test->first();执行查询并返回第一个结果,但您没有将结果分配给任何内容,因此$test仍然只是查询对象,它将始终计算为{{ 1}}正如你所看到的那样。如果你把它分配给其他东西,然后检查它,它应该工作。

true