如果用户在 laravel 中刷新页面,则用户输入会成倍增加


User input multiplies if user refresh the page in laravel

>我创建了一个页面,用于在 laravel 中创建帖子。 它工作得很好. 但是当我再次刷新感谢页面时,数据入.

MY create.blade.php 是:

<div class="container col-md-8 col-md-offset-2">
{{ Form::open(array('action'=>'create','method'=>'PUT')) }}
{{ Form::label('title','Title :') }}<br>
{{ Form::text('title','',array('required')) }}<br>
{{ Form::label('body','Post :') }}<br>
{{ Form::textarea('body','',array('required')) }}<br>
{{ Form::label('user_id','User Id :')}}<br>
{{ Form::text('user_id','',array('required')) }}<br>
{{ Form::label('done','Status :') }}<br>
{{ Form::text('done','',array('required')) }}<br><br>
{{ Form::submit() }}
{{ Form::close() }}

我的路由文件是:

Route::get('/','TasksController@home'); Route::get('/create','TasksController@create'); Route::post('/create','TasksController@createpost');

任务控制器是:

class TasksController extends BaseController{
    public function home(){
        $tasks = Task::all();
        return View::make('home',compact('tasks'));
    }
    public function create(){
        return View::make('create');
    }
    public function createpost(){
        $input = Input::all();
        $task = new Task;
        $task->title = $input['title'];
        $task->body = $input['body'];
        $task->user_id = $input['user_id'];
        $task->done = $input['done'];
        $task->save();
        return View::make('thanks');
    }
}

谢谢刀片.php是:

感谢您的注册

我希望如果用户刷新 thanks.blade.php则不会再次插入数据库

谢谢

在页面刷新时,浏览器每次都会再次提交表单。我通常在表单提交后使用重定向。例如,您可以使用 header() 函数来执行此操作。

或者,您可以在 laravel 中使用消息重定向,如下所示:

return Redirect::to('thanks')->with('message', 'My message here');

提交后,使用redirect()函数:

return redirect('make');