問題描述
我有以下代碼(成員只是一個標準的 Eloquent 模型)
I Have the following code (member is just a standard Eloquent model)
$members = new Member;
$members->where('user_id', '=', 5);
$_members = $members->get();
最后一次查詢運行產生SELECT * from members
",所以它似乎忽略了我的where子句,我在這里做錯了什么?
The last query run produces "SELECT * from members
", so it seems to be ignoring my where clause, what am I doing wrong here?
順便說一句,我知道我可以做 $members = new Member::where(...)
等...但我將添加 where
子句在一個循環中,以便對來自數據庫的結果進行過濾.
By the way I know I could do $members = new Member::where(...)
etc... but I will be adding the where
clauses in a loop in order to create filtering on the results from the database.
更新
解決這個問題的唯一方法似乎是添加一個可以捕獲所有初始化的地方,例如:
The only way around this seems to be to add a where that will catch all on initialization such as:
$members = Member::where('member_id', '<>', 0);
$members->where('user_id', '=', 5);
$_members = $members->get();
但這看起來有點像黑客.我不想做任何復雜的事情,所以我不能是唯一遇到這個問題的人嗎?
But this seems quite a bit of a hack. I am not trying to do anything complicated so I cant be the only one who has had this problem?
可能是固定的
對于在這里偶然發現的任何人,我已經使用以下方法解決了這個問題:
For anyone who has stumbled here I have fixed this by using:
$members = Member::query();
$members->where('user_id', '=', 5);
$_members = $members->get();
不確定這是否是正確的方法,但它對我有用,而且看起來不像黑客.
Not sure if that is the correct way but it works for me and doesn't appear like a hack.
推薦答案
我不相信 Eloquent 是這樣工作的.
I don't believe Eloquent works like that.
試試這個...
$members = new Member;
$members = $members->where('user_id', '=', 5);
$members = $members->get();
這篇關于Laravel 4 eloquent 模型鏈接額外的 where 子句的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!