我创建了一个用于在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,则不会再次插入数据库
由于
答案 0 :(得分:2)
在页面刷新时,浏览器每次都会再次提交表单。我经常在表单提交后使用重定向。例如,您可以使用header()函数执行此操作。
或者您可以使用这样的laravel中的消息重定向:
return Redirect::to('thanks')->with('message', 'My message here');
答案 1 :(得分:0)
提交后,使用redirect()
函数:
return redirect('make');