2017-03-21 61 views

回答

2

WhereRaw:有時您可能需要在查詢中使用原始表達式。這些表達式將作爲字符串注入查詢。

如果無法生成你通過流暢的接口需要查詢,隨意使用whereRaw:

例:

$users = User::whereRaw('age > ? and votes = 100', array(25))->get(); 

Reference

+0

噢好吧謝謝你的回答。 –

7

WhereRaw()是Laravel查詢的功能生成器,它將輸入原樣放入SQL查詢的where子句中。

把它看作where()函數,其輸入參數在插入查詢之前不會被處理。

請參見下面的例子:

$Query = DB::table('some_table')->where('YEAR(date)', 'YEAR(CURRENT_DATE)'); 

在這個Laravel才能解決您的參數來構建查詢。這將導致下面的查詢,因爲你的投入將一些field和其旗下value處理:

這是不希望
SELECT * FROM `some_table` WHERE `YEAR(date)` = `YEAR(CURRENT_DATE)` 

現在,如果你使用whereRaw喜歡:

$Query = DB::table('some_table')->whereRaw('YEAR(date) = YEAR(CURRENT_DATE)'); 

現在Laravel把這個where子句,因爲它是在你的查詢,如下圖所示:

SELECT * FROM `some_table` WHERE YEAR(date) = YEAR(CURRENT_DATE) 

希望這有助於(:

+0

@dparoli謝謝編輯的建議。 –

+0

這是一個很好的答案,清晰的例子 – dparoli

+0

噢好吧謝謝你的回答。 –