我正在使用Laravel 5.4和预先构建的auth库 .
当用户成功登录时,我想有一个甜蜜的警报(或弹出窗口),但我无法找到重定向发生的逻辑位置 .
所以:
用户登录成功
获取转发到家庭控制器(需要在代码中找到这个并附加一条Flash消息或其他什么?)
在我的视图中检测是否有闪存消息并在内存中创建一个flash消息,然后我可以使用Javascript查询并显示一个警告框 .
编辑:
我已经有了这套装,很好:
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/';
但我需要找到引用它的位置?并添加一条Flash消息
谢谢
3 回答
该属性在方法
redirectPath()
中的特征RedirectsUsers
中引用 . 该特征用于LoginController
中使用的特征AuthenticatesUsers
.话虽如此,你需要做的是相当简单 . 在登录控制器中,我们需要覆盖特征中的方法,以便它还将消息闪烁到会话 . 但由于该方法属于特征,我们不仅仅想要覆盖它,我们仍然希望在特征中使用该方法,因此我们首先需要将其别名为别名 .
现在我们可以安全地覆盖此方法以将数据刷新到会话 .
如果你不想通过这个,你可以做的另一件事就是监听
auth.login
事件,并在你的处理程序中,在那里闪存数据 .app/Http/Controllers/Auth/LoginController.php
以引用HomeController路由并刷新你的消息:use Session;
@if (session()->has('flash_notification.success')) <div class="alert alert-success">{!! session('flash_notification.success') !!}</div> @endif
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
如果您想让用户使用ajax登录并在成功登录时发送flash消息然后重新加载/重定向,则必须对
Auth\Login Controller
进行一些更改Auth\Login Controller
,第一个将成功登录时发送响应,而第二个将产生错误消息 .当然,如果您希望在服务器上设置自定义错误/ flash消息,可以将其添加到响应json .
希望能帮助到你 .