SweetAlert:警报出现两次

时间:2016-06-01 08:11:25

标签: javascript laravel notify sweetalert

我有一个Laravel项目。我将一些数据存储到我的数据库中,并创建一个通知:

public function store(CreateProjectFormRequest $request, Project $project)
   {
        $project = $request->user()->projects()->create([
            'title' => $request->input('title'),
            'description' => $request->input('description'),
            'introduction' => $request->input('introduction'),
            'city_id' => $request->input('city_id')
        ]);

         notify()->flash('Publié !', 'success', [
            'text' => 'Votre projet a était publié avec succés !',
            'timer' => 2000,
        ]);

         return view('projects.show')->withProject($project)->withProgress(56);
   }

警告会在用户重定向到projects.show视图时显示。但是,当他们转到另一个页面时,警报会再次出现。

此视图扩展了我的布局。这部分脚本的布局内容:

<script>
    @if (notify()->ready())
        swal({
            title: "{!! notify()->message() !!}",
            text: "{!! notify()->option('text') !!}",
            type: "{{ notify()->type() }}",
            @if (notify()->option('timer'))
                timer: "{{ notify()->option('timer') }}",
            @endif
        });
    @endif    
</script> 

请帮我解决,我只需要一次此警报。谢谢!

修改 我知道了 !我加载视图而不是重定向到路由! Juste需要编辑:

return view('projects.show')->withProject($project)->withProgress(56);

return redirect()->route('projects.show')->withProject($project)->withProgress(56);

1 个答案:

答案 0 :(得分:1)

问题是您正在创建一个闪存,然后创建一个视图。因此,您将获得此请求的闪存以及下一个请求。

当您点击消息时,它将一直保留到下一个请求结束。如果你创建一个视图(而不是重定向),你不是在创建一个新请求,而是实际上&#34;整理&#34;现在的。要求&#34;重置&#34;闪光仍然是下一个。您需要做的就是完成此请求并通过创建重定向来启动另一个请求。

所以你想在创建闪光灯后重定向,对吗?

return Redirect::action('YourController@yourFunction')->withProject($project)->withProgress(56);

来源:https://laravel.com/docs/5.1/session#flash-data