首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Laravel -注销时非对象错误的属性

Laravel -注销时非对象错误的属性
EN

Stack Overflow用户
提问于 2018-10-23 03:20:46
回答 3查看 35关注 0票数 0

我的项目的目的是在url中显示用户的公司名称,它在登录时可以完美地工作。但是,当您注销时,我应用以下解决方案的任何视图都会抛出一个非对象错误的属性,这是因为它正在查找auth::user company,但找不到它。

我已经尝试了一些事情,但不能让它工作,以重定向登录,同时仍然使用以下解决方案。有没有办法做到这一点?

出现错误的web.php代码:

代码语言:javascript
复制
Route::get('/home/{company}', 'HomeController@index'); 
Route::get('/home',function(){
 return redirect('home/'.Auth::user()->company);
});

因此,当我注销时,url是mywebsite/home,我会得到对象错误,但如果我手动修改任何内容,它会重定向。例如,我的网站/主页/随机

未给出错误并按预期进行重定向的代码:

代码语言:javascript
复制
 Route::get('/home', 'HomeController@index'); 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-10-23 03:39:16

与Jonathons的解决方案类似,使用auth::check,但将所有路由放入一个组中确实起到了作用。

代码语言:javascript
复制
Route::group(['middleware' => ['auth']], function() { -- all routes in here --- });
票数 0
EN

Stack Overflow用户

发布于 2018-10-23 03:26:33

尝试如下所示:

代码语言:javascript
复制
Route::get('/home',function(){
    return redirect(Auth::check() ? 'home/'.Auth::user()->company : 'login');
});

这样,当一个命中/home地址时,系统将首先检查是否有用户登录。如果是这样,它将重定向到登录用户的公司页面。如果不是,它将重定向到登录页面。如果有用户登录,Auth::check()将返回true,否则返回false

票数 0
EN

Stack Overflow用户

发布于 2018-10-23 03:40:55

尝试为此更改您的重定向

代码语言:javascript
复制
Route::get('/home/{company}', 'HomeController@index')->name('home')

Route::get('/home',function(){
 return redirect()->route('home', \Auth::user()->company);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52936392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档