【发布时间】:2016-03-30 20:58:58
【问题描述】:
我正在使用 Laravel 5.2 的默认身份验证,并且在框架的 authenticated() 方法的行为上遇到了一些问题。该方法对于在成功进行身份验证后但在加载任何后续页面之前运行代码很有用。认证成功会触发AuthController中的authenticated()方法,我定义如下:
protected function authenticated() {
session(['loggedIn' => 'show']);
return redirect('/home');
}
正如我们所见,它可用于设置主页首次加载时所需的会话变量(但不应在每次重新加载主页时重置)。
就我而言,在用户登录或注册后,我使用loginIn 在每个会话中仅显示一次特定的欢迎 div。为此,我在主页上添加了以下 PHP:
function displayWelcome() {
if (session('loggedIn') == 'show') {
echo '<div class="container" name="loggedIn" id="loggedIn">';
session(['loggedIn' => 'hide']);
} else {
echo '<div class="container" name="loggedIn" id="loggedIn" hidden>';
}
}
目前,当现有用户登录时,此代码可以正常工作。
但是,它并不完全适用于用户注册。它确实成功地重定向到主页,但欢迎 div 根本没有出现。奇怪的是,当我回显 session('loggedIn') before 调用 displayWelcome() 函数时,它在注册后输出“隐藏”(并在登录后正确显示“显示”)。我看不到它是如何获取“隐藏”值的,以及为什么它没有正确打开 div。
有什么提示吗?
【问题讨论】:
标签: laravel laravel-5 laravel-5.2