Laravel - 防止刷新时重新提交表单

fra*_*al5 2 forms laravel

当我刷新页面时,如何防止我的表单重新提交。我发现的解决方案建议重定向,我正在使用。

admin.enrollform.blade.php 中的表单:

    <form id="enrollform" class="form-horizontal" role="form" method="post"
      enctype="multipart/form-data"
      action="{{route('storeStudent', ['site' => $site->site_url, 'lang' => $lang] )}}">
      <input type="visible" name="_token" id="_token" value="{{ csrf_token() }}"/>
      ...
    </form>
Run Code Online (Sandbox Code Playgroud)

Laravel 控制器:

public function store(Request $request, $site, $lang = null)
{

    ....

    return view('admin.enrollform', [
        'message'       => $message
    ]);
}
Run Code Online (Sandbox Code Playgroud)

如果成功,控制器返回一个视图,它指向同一个页面。所以同一个页面再次加载,并带有一条消息。而且表格是空的。

但是,如果我此时单击刷新,表单将再次提交。我希望它只是刷新页面,无论是否有它从控制器收到的消息。

我有什么办法可以使用 CSRF 令牌来验证这一点吗?据我了解,CSRF 令牌仅验证会话是否有效,与表单本身无关。

谢谢。

Mah*_*esi 5

使用返回 back()

return back()->with(['message' => $message]);
Run Code Online (Sandbox Code Playgroud)