如果用户在laravel中刷新页面,则用户输入会相乘

时间:2015-01-21 19:04:31

标签: php laravel-4

我创建了一个用于在laravel中创建帖子的页面。它运作良好。但是当我再次刷新感谢给予页面时,会插入数据。

我的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');

taskController是:

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');
    }

}

和thanks.blade.php是:

    

感谢您注册

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

由于

2 个答案:

答案 0 :(得分:2)

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

或者您可以使用这样的laravel中的消息重定向:

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

答案 1 :(得分:0)

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

return redirect('make');