在Laravel外使用Eloquent如何寫兩個欄位值相等的記錄?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-16 16:52:34
0
4
439

要實作 select * from table where userid=parentid and age>30 這種查詢該如何寫?沒有在文檔裡找到這種用法.

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回覆(4)
阿神

方法一

$results = Model::whereRaw('userid=parentid and age>30')->get();

方法二

$results = DB::table('table_name')->whereRaw('userid=parentid and age>30')->get();
仅有的幸福

@ty0716 說的是標準答案。

我來補充一下,為什麼會這樣。
你的需求是,需要引用parentid作為where的右值,但是,在laravel中,where的右值,不能為sql,只能是常規的資料結構,例如字串、數值、時間等。而不能是一個字段名(users.id)之類的有sql功能的東西,這是為了防止sql注入。

所以,只能用@ty0716所說的raw方法來執行原生的sql了。

过去多啦不再A梦

沒人知道嗎?

PHPzhong

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板