没有通知返回

时间:2019-03-09 13:10:46

标签: laravel backpack-for-laravel laravel-notification

我正在尝试通过控制器获取用户的未读通知。

这有效:

public function notifications(){

    return \App\User::find(auth()->user()->id)->unreadNotifications()->limit(5)->get();
}

这不是,它返回一个空集合:

public function notifications(){
    return auth()->user()->unreadNotifications()->limit(5)->get();
}

你能告诉我我在想什么吗?预先感谢。

在背包3.5中使用Laravel 5.8。

使用权限管理器包的UseBackpackAuthGuardInsteadOfDefaultAuthGuard中间件,忽略了Laravel的默认身份验证保护,可以在背包路由中使用背包身份验证。在控制器的其余部分,auth()和Backpack_auth正常工作。

2 个答案:

答案 0 :(得分:0)

尝试一下:

window!.makeFirstResponder(self)

如文档所述:

  

您可以通过Auth外观访问经过身份验证的用户:

     

或者,一旦验证了用户身份,您就可以通过Illuminate \ Http \ Request实例访问已验证的用户。请记住,类型提示类将自动注入到您的控制器方法中:

答案 1 :(得分:0)

Authauth()在这里可能不起作用,因为您使用的是Laravel背包身份验证,它使用的保护与Laravel使用的默认保护不同。

这可能对您有用:


backpack_user()->unreadNotifications()->limit(5)->get();

如果可行,原因如下:

如果您查看project/vendor/backpack/base/src/helpers.php,您会发现backpack_user()backpack_auth()->user()的别名,而backpack_auth的作用是:

return \Auth::guard(backpack_guard_name());

这很重要,因为它抓住了定义的config/backpack/base.php(默认为backpack)的防护,并使用它代替了Laravel的默认防护web