注销后,Laravel Auth非对象。中间件运行顺序错误?

时间:2018-07-16 16:10:41

标签: php laravel laravel-5

Laravel 5.6,我有一个生成用户菜单的中间件。在此中间件中,我有一条转到帐户编辑页面的路由;

action("CompanyController@edit", ['company' => Auth::user()->company->id])

如果用户注销,则在注销时引发以下错误:

ErrorException (E_NOTICE)
Trying to get property 'company' of non-object

我可以通过将路线更改为以下方式来解决此问题:

action("CompanyController@edit", ['company' => Auth::check() ? Auth::user()->company->id : ''])

现在,未经身份验证的用户将导致重定向到登录页面,并且不会引发错误-如预期的那样。

但是,这感觉不对。身份验证中间件是否应该在执行其他任何操作之前不捕获此错误?有什么办法可以解决,必须先完成身份验证检查,然后才能找回用户详细信息?

0 个答案:

没有答案