我希望使用 Eloquent 方法在 Laravel 5.1 中生成以下查询。
mysql查询如下
SELECT * FROM orders WHERE 1 = 1 ORDER BY o_date DESC LIMIT 25
无论如何我都无法得到
WHERE 1 = 1
部分工作。
我是 Laravel 新手,并且很确定这很简单。但无法弄清楚。
我尝试了以下变体
$orders = orders::where('1', 1)->orderBy('o_date', 'desc')->take(25)->get();
$orders = orders::where(1)->orderBy('o_date', 'desc')->take(25)->get();
$orders = orders::where('1', '=', '1')->orderBy('o_date', 'desc')->take(25)->get();
但它不起作用。查询结果如下图
> select count(*) as aggregate from `orders`
最佳答案
似乎(查看 1=1)您需要 whereRaw
$orders = orders::whereRaw("any clause u wish")->orderBy('o_date', 'desc')->take(25)->get();
但是如果“你希望的任何子句”不是一个非常非常动态的部分,你最好看看你还可以使用什么
http://laravel.com/api/5.0/Illuminate/Database/Query/Builder.html
对于上面的例子,下面的代码工作正常
$orders = orders::whereRaw("1 = 1")->orderBy('o_date', 'desc')->take(25)->get();
关于php - Laravel 5.1 中的空 where 子句更喜欢 Eloquent 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31691687/