Php 附加->;基于条件的where()子句

Php 附加->;基于条件的where()子句,php,mysql,laravel-5,fluent,Php,Mysql,Laravel 5,Fluent,我想根据某些条件将where子句附加到查询中,问题是我检查它是否从数据库返回了一行的方法总是返回true 如果我在这样的一行中执行查询: $test= DB::table('users')->where('email', $email)->where('password', $password)->first(); 它按预期工作,如果发现一行,它是真的,反之亦然,但是如果我像这样附加到查询中,它总是真的(这很有意义,但是我如何检查它是否确实从数据库返回了一些内容?) 语句$t

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

如果我在这样的一行中执行查询:

$test= DB::table('users')->where('email', $email)->where('password', $password)->first();
它按预期工作,如果发现一行,它是真的,反之亦然,但是如果我像这样附加到查询中,它总是真的(这很有意义,但是我如何检查它是否确实从数据库返回了一些内容?)


语句
$test->first()
执行查询并返回第一个结果,但您没有将该结果分配给任何对象,因此
$test
仍然只是查询对象,它将始终计算为
true
。如果您将它分配给其他对象,然后检查它,它应该可以工作

$example = $test->first();

if ($example) { ...

当它为空时,
$test
到底包含了什么?@Don't漂亮的一个!
$example = $test->first();

if ($example) { ...