У меня есть кое-что, что я не совсем понимаю, у меня есть решение, но я не знаю, почему и это заставляет меня немного сходить с ума
контроллер
DB::connection()->enableQueryLog();
$transfer = Transfer::where('ticket_id', $last_ticket)->where('event_id', 36)->where('buyer', $user_email)->first();
$queries = DB::getQueryLog();
dd($queries);
Результат
array:1 [
0 => array:3 [
"query" => "select * from 'transfers' where 'ticket_id' = ? and 'event_id' = ? and 'buyer' = ? limit 1"
"bindings" => array:3 [
0 => false
1 => 36
2 => "[email protected]"
]
"time" => 0.36
]
]
Ситуация: $last_ticket
в БД уникален и никогда не является null
, пустым или false
.
В моем примере $last_ticket
является false
, но в БД нет никакого false
, почему я все еще получаю результаты?
Это потому, что всякий раз, когда условие ложно, оно не принимает этого в уравнение?
Таким образом, возникает вопрос: как я могу сделать, чтобы получить правильные значения результатов: если $ last_ticket является ложным, то никаких результатов, и если у него есть некоторые данные, тогда возвращаем результат строки, ограниченный $ last_ticket
Один вариант может состоять в том, чтобы поставить if($last_ticket == false){$last_ticket='randomInexistentString_ag4dh&2g32y4t'}
чтобы он не был нулевым или нулевым, но я не думаю, что это более красивый способ пойти