我在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,但没有成功(也许我没有正确执行)。
这不是最干净的方法;
$day = 'Monday'; // dynamically Tuesday, Wednesday....
$method = 'where' . $day;
return DB::table('items')->$method('1')->get();