在Laravel中使用Auth :: user() - > id摆脱“试图获取非对象的属性”

时间:2014-03-15 15:16:50

标签: php laravel-4

我正在Laravel中制作工作流程应用程序。

用户可以使用CRUD任务,项目,用户和组织。

用户可以使用大约16-20个屏幕/功能。

我使用Auth::user()->id来确定当前用户是谁并获取他们的任务,项目等。

如果访问者已登录,则此功能非常有用。

如果该站点的访问者未登录,Laravel将返回一个大的黑色和橙色堆栈转储,并显示错误"尝试获取非对象的属性。"

如何设计这个,以便如果访问者登录,Laravel会返回一个表,例如,他们打开的任务,如果他们不是,它会返回一个空表的页面?

2 个答案:

答案 0 :(得分:1)

使用Auth::check() http://laravel.com/docs/security#authenticating-users

if (Auth::check()) {
    // The user is logged in...
    // Maybe add a Redirect::to()
} else {
    // User is not logged in...
}

答案 1 :(得分:1)

我终于找到了解决方案。默认情况下,laravel会将id作为其Auth Table的主键,如果您更改了用户表主键,请修改模型,如下所示。

添加此受保护的$primaryKey = 'your_custom_primary_key';