You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel Jetstream注册成功后显示toastr消息提示

Laravel 8 + Jetstream 注册成功触发toastr提示解决方案

1. 修改RegisteredUserController存储闪存消息

无需改动原有注册、登录逻辑,仅需在返回响应前向session写入一次性闪存消息即可,修改后的store方法代码如下:

public function store(Request $request,
                      CreatesNewUsers $creator): RegisterResponse
{
    event(new Registered($user = $creator->create($request->all())));

    $this->guard->login($user);

    // 新增闪存成功提示
    session()->flash('success', '注册成功,欢迎使用!');

    return app(RegisterResponse::class);
}

2. 前端适配触发toastr

根据你使用的Jetstream栈类型做对应配置即可:

情况1:Blade/Livewire栈

首先确保你已经在全局布局模板(默认路径为resources/views/layouts/app.blade.php)中正确引入了toastr的css、js依赖(注意toastr依赖jQuery,需要先引入jQuery),之后在模板底部加入如下代码:

@if(session()->has('success'))
<script>
toastr.success("{{ session('success') }}");
</script>
@endif
{{-- 可按需追加错误提示的判断逻辑 --}}
@if(session()->has('error'))
<script>
toastr.error("{{ session('error') }}");
</script>
@endif

情况2:Inertia栈

首先需要在Inertia请求中间件中共享闪存消息到前端,修改app/Http/Middleware/HandleInertiaRequests.php的share方法:

public function share(Request $request)
{
    return array_merge(parent::share($request), [
        'flash' => [
            'success' => session('success'),
            'error' => session('error'),
        ]
    ]);
}

之后在全局布局的Vue/React组件中监听flash属性的变化,当存在success值时调用toastr.success()触发提示即可。

常见不生效排查

  • 确认toastr依赖引入顺序正确:先引入jQuery,再引入toastr的css文件,最后引入toastr的js文件
  • 确认session配置正常,没有使用不支持闪存的驱动(如array驱动仅测试环境可用)

内容的提问来源于stack exchange,提问作者Arturs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:18:04