Laravel 5.1中的empty where子句更喜欢雄辩的方法

时间:2015-07-29 05:15:00

标签: php laravel laravel-4 laravel-5 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`

2 个答案:

答案 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很聪明,应该删除这个无用的查询部分。