Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 07.05.2019 14:42:33

Выборка записей по времени в Laravel - не работает

Имею SQL-базу MariaDB Ver 15.1 Distrib 10.1.37-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2.

Есть таблица с полями:

- is_use (тип boolean)
- created_at (стандартное поле timestamp)

Пытаюсь найти в таблице записи, у которых поле is_use=false и время создания более 2-х часов от текущего момента.

Делаю такой запрос:

$result=Article::where('is_use', false)->where('created_at', '<', '(NOW() - INTERVAL 2 HOUR)')->get();
            
info("Garbage collector for Article is run: ".$result." count ".count($result));

В результате записи не находятся:

Garbage collector for Article is run: [] count 0

Хотя такие записи однозначно есть.

Информация о сконструированном SQL-запросе следующая:

{"query":"select * from `articles` where `is_use` = ? and `created_at` < ?","bindings":[false,"(NOW() - INTERVAL 2 HOUR)"],"time":0.95}

И по-ходу дела запрос получается такой:

select * from `articles` where `is_use` = false and `created_at` < "(NOW() - INTERVAL 2 HOUR)";

То есть, имеются кавычки вокруг выражения времени, и оно воспринимается как строка. Если кавычки убрать, то запрос нормально выполняется.

Но как заставить Eloquent конструировать запрос с выражением времени так, чтобы это выражение не помещалось в кавычки?

Не в сети

#2 13.05.2019 10:21:07

Re: Выборка записей по времени в Laravel - не работает

Не в сети

#3 13.05.2019 11:29:24

Re: Выборка записей по времени в Laravel - не работает

Топик стартер имеет привычку копировать вопрос сразу на несколько форумов. На него типа коллективный разум Рунета работает ))) и сам он никогда не пишет "вот такое решение найдено: ..." чтобы пополнить общую копилку. Как по мне, это неуважение.

Вот тут всё отвечено давно: https://php.ru/forum/threads/vyborka-za … aet.76608/


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела