从数据库获取信息并输出到视图只有一次| {第44次}

时间:2016-05-29 23:38:45

标签: php laravel laravel-5.2 laravel-middleware

我试图从数据库中获取一些信息,根据登录用户过滤该信息,然后根据用户组| roles |权限将相应的信息返回到视图以构建菜单。

这应该只在用户登录应用程序后立即发生一次。对于我正在使用this package的菜单以及我正在使用Cartalyst Sentinel的用户/组/权限。

我可以使用Middleware但我认为它的目的不是从数据库获取信息并构建一些输出或View Composers但我不希望它一直在执行调用布局或标题几乎所有时间或所有时间我都会说或我可以使用Service Provider我不太了解这个最新的。

所以有这样的信息:在这种情况下你会做什么?您如何构建菜单并输出到layoutsection@header

1 个答案:

答案 0 :(得分:0)

这是一个简单的例子

让我们假设您想要检索具有其角色的用户并缓存结果

public function test() {
//getting authenticated user with roles
$userwithroles = Cache::remember('users-'.Auth::user()->id, 60, function() {
return User::with('roles')->where('id', Auth::user()->id)->get();
});
  return View('home')->with('$data',$userwithroles);
}

现在,查询将每隔一小时执行一次,您可以查看laravel文档以了解更多技巧和酷炫其他内容

Caching in laravel

您也可以查看Video(其laravel 4,但几乎相同)

我希望这可能会有所帮助

相关问题