我正在编写用于从“警报”表中获取“警报”计数的代码,并且我希望在“/layouts/app.blade.php”中显示的菜单中显示警报计数。为此,我正在使用会话,例如在用户登录之后我将会话数据添加到现有会话中,如下所示:
/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUser.php
protected function sendLoginResponse(Request $request)
{
/*** I have added the session here ***/
$request->session()->regenerate();
$count = DB::table('alerts')
->where('acknowledged', 1)
->count();
$request->session()->put('count_alert', $count);
/***** END's here ******/
$this->clearLoginAttempts($request);
return $this->authenticated($request, $this->guard()->user())
?: redirect()->intended($this->redirectPath());
}
我在/resources/views/layouts/app.blade.php中显示该会话
$value = Session::get('count_alert');
<a href="{{ url('/alerts') }}"> echo ' ('.$value.') '; </a>
它的工作正常,但如果用户更新警报,那么计数将被更改,然后我必须在整个应用程序中维护该计数,因为它必须显示在布局app.blade.php文件中。 手段页面刷新我需要更新该会话并显示在菜单(标题)中。任何帮助,将不胜感激。感谢。
答案 0 :(得分:0)
页面刷新会重新加载当前route
。你应该得到&amp;在显示此视图的method
内设置警报计数。所以每次加载这个页面。您将获得最新的警报计数。
例如。您的视图为user.index
,当您访问指定路线user.index
public function index(Request $request)
{
//Get the alert count
$alert_count = DB::table('alerts')->count();
return view('user.index',[
'alert_count' => $alert_count,
]);
}
一旦发送此计数即可查看。你可以这样做
//user.index.blade.php
{{ $alert_count }}