为什么我得到“调用非对象上的成员函数where()”错误?

时间:2015-06-05 19:59:18

标签: php eloquent laravel-5

当我尝试从数据库中获取元素时,如果表为空,我遇到问题,我收到此错误

  

调用非对象

上的成员函数where()

如果我将数据插入表中,它将正常工作

$projects = Project::find(Auth::user() -> id)->where('admin_id', Auth::id())->where('actived',0)->lists('name','id');

任何解决方案? :)

2 个答案:

答案 0 :(得分:2)

Eloquent模式下的find()方法将检索ID匹配的模型的单个实例。添加where()条件没有意义,在您的情况下,您没有找到匹配的模型,因此您收到该错误消息,因为Project::find()是返回null

如果您想查询符合您列出的所有条件的单个项目,请执行以下操作:

$projects = Project::where('user_id', '=', Auth::user()->id)
                ->where('admin_id', '=', Auth::id())
                ->where('actived', '=', 0)
                ->get();

请注意,我在这里猜测了你要完成的事情 - 上面的列名可能不正确。

这将为您提供一个包含零个或多个{1}} Eloquent模型实例的集合。

答案 1 :(得分:0)

我发现解决方案只是将find替换为findOrNew

$projects = Project::findOrNew(Auth::user() -> id)->where('admin_id', Auth::id())->where('actived',0)->lists('name','id');