Cakephp3 строчные SQL-запрос - PullRequest
0 голосов
/ 07 июня 2018

У меня проблема со следующим фрагментом SQL-оператора:

...->where([
        'Vlans.id' => $this->id,
        'AND' => [
            ["TIMESTAMPDIFF(DAY, Requests.timestamp, CURDATE()) <" => $this->days]
        ]
    ])...

Cakephp в нижнем регистре некоторые части (запросы. Timestamp и curdate):

(Vlans.id = :c0 AND TIMESTAMPDIFF(DAY, requests.timestamp, curdate()) < :c1)

Нижний регистр CURDATE() не проблема, потому что это SQL-функция.Но я переименовал таблицу запросов в Запросы (заглавная буква R).

Есть ли способ предотвратить использование нижнего регистра или другого решения вместо изменения всех моих псевдонимов?

Спасибо!

1 Ответ

0 голосов
/ 07 июня 2018

Вы должны использовать функции SQL для тортов

$f = $query->func()->timestampdiff([
    'DAY' => 'literal', 
    'Requests.timestamp' => 'identifier', 
    $query->func()->curdate()
]);
$days = $this->days;
$query->where(function ($exp) use ($f,  $days) {
    return $exp->lt($f, $days);
});

см. Руководство здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...