我想根据某些条件将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
}
答案 0 :(得分:1)
语句$test->first();
执行查询并返回第一个结果,但您没有将结果分配给任何内容,因此$test
仍然只是查询对象,它将始终计算为{{ 1}}正如你所看到的那样。如果你把它分配给其他东西,然后检查它,它应该工作。
true