Как вставить SQL имя столбца в Raw Query из PHP / Laravel - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть этот код в Laravel:

DB::table('items')
    ->whereRaw("? = 1", ['active'])
    ->get();

В моей таблице базы данных есть столбец с именем active и запрос, который я хочу выполнить:

SELECT *
FROM items
WHERE active=1

Мой код завершается ошибкой, потому что запрос передает мой параметр 'active' в виде строки вместо имени столбца в синтаксисе SQL (что является ожидаемым поведением). Итак, вместо вышесказанного, я получаю что-то вроде этого:

SELECT *
FROM items
WHERE "active"=1

Любая идея, как решить эту проблему?

PS: я пробовал MySQL функцию TRIM, но безуспешно ( возможно я не правильно сделал).

1 Ответ

1 голос
/ 29 апреля 2020

Это не самый чистый путь;

$day = 'Monday'; // dynamically Tuesday, Wednesday....
$method = 'where' . $day;

return DB::table('items')->$method('1')->get();
...