我希望用雄辩的方法在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`
答案 0 :(得分:2)
似乎(看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();
答案 1 :(得分:0)
为什么要创建一个始终为真的条件?我认为Eloquent很聪明,应该删除这个无用的查询部分。