我正在使用Laravel 5.4和预先构建的auth库.
当用户成功登录时,我想有一个甜蜜的警报(或弹出窗口),但我无法找到重定向发生的逻辑位置.
所以:
获取转发到家庭控制器(需要在代码中找到这个并附加一条Flash消息或其他什么?)
在我的视图中检测是否有闪存消息并在内存中生成一条闪存消息,然后我可以使用Javascript查询它并显示一个警告框.
编辑:
我已经有了这套装,很好:
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/';
但我需要找到引用它的位置?并添加一条Flash消息
谢谢
解决方法:
该属性在方法redirectPath()中的特征RedirectsUsers中引用.该特征用于在LoginController中使用的特性AuthenticatesUsers.
话虽如此,你需要做的是相当简单.在登录控制器中,我们需要覆盖特征中的方法,以便它还将消息闪烁到会话.但由于该方法属于特征,我们不仅仅想要覆盖它,我们仍然希望在特征中使用该方法,因此我们首先需要将其别名为别名.
use AuthenticatesUsers {
redirectPath as laravelRedirectPath;
};
现在我们可以安全地覆盖此方法以将数据刷新到会话.
/**
* Get the post register / login redirect path.
*
* @return string
*/
public function redirectPath()
{
// Do your logic to flash data to session...
session()->flash('message', 'your message');
// Return the results of the method we are overriding that we aliased.
return $this->laravelRedirectPath();
}
如果你不想通过这个,你可以做的另一件事就是监听auth.login事件,在你的处理程序中,闪存那里的数据.