добавление — & gt; where () на основе условий

Я хочу добавить where предложения к запросу, основанные на определенных условиях, проблема в том, что при проверке, вернул ли он строку из базы данных, он всегда возвращает true.

Если я сделаю запрос в одну строку, например, так:

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

Он работает, как и ожидалось, если строка найдена, это правда, и наоборот, но если я добавляю запрос таким образом, это всегда верно (что имеет смысл, но как мне проверить, что он действительно что-то возвратил из БД? ):

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

if ($test) {
// always true
}

1

Решение

Заявление $test->first(); выполняет запрос и возвращает первый результат, но вы никому не присваиваете этот результат, поэтому $test по-прежнему просто объект запроса, который всегда будет true как вы видите. Если вы назначаете это на что-то другое, а затем проверяете это, оно должно работать.

$example = $test->first();

if ($example) { ...
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]