我有問題,當我嘗試從數據庫中獲取的元素,如果表是空的,我得到這個錯誤爲什麼我會得到一個「調用成員函數where()在非對象」錯誤?
調用一個成員函數,其中()非對象
如果我插上數據到表中它會正常工作
$projects = Project::find(Auth::user() -> id)->where('admin_id', Auth::id())->where('actived',0)->lists('name','id');
任何解決方案? :)
我有問題,當我嘗試從數據庫中獲取的元素,如果表是空的,我得到這個錯誤爲什麼我會得到一個「調用成員函數where()在非對象」錯誤?
調用一個成員函數,其中()非對象
如果我插上數據到表中它會正常工作
$projects = Project::find(Auth::user() -> id)->where('admin_id', Auth::id())->where('actived',0)->lists('name','id');
任何解決方案? :)
在Eloquent模式下的find()
方法將檢索ID匹配模型的單個實例。添加where()
條件沒有意義,在您的情況下,您沒有找到匹配的模型,因此您收到錯誤消息,因爲Project::find()
正在返回null
。
如果你想查詢一個項目,所有你所列出的條件相符,像這樣做:
$projects = Project::where('user_id', '=', Auth::user()->id)
->where('admin_id', '=', Auth::id())
->where('actived', '=', 0)
->get();
請注意,我在這裏做了一些猜測關於你想什麼完成 - 上面的列名可能不正確。
這會給你一個包含Project
Eloquent模型的零個或多個實例的集合。
我找到了解決方案剛剛更換find
與findOrNew
:
$projects = Project::findOrNew(Auth::user() -> id)->where('admin_id', Auth::id())->where('actived',0)->lists('name','id');