成功提交后表单未重置

  • 本文关键字:表单 提交 成功 laravel
  • 更新时间 :
  • 英文 :


这是我的控制器:

class GuestbookController extends Controller
{
public function viewAll(Request $request)
{
if ($request->method() === 'POST') {
$this->validate($request, [
'username' => 'required|string|regex:/^[a-zA-Zd]+$/',
'email' => 'required|string|email',
'homepage' => 'nullable|string|url',
'text' => 'string',
'captcha' => 'required|captcha',
],
[
'captcha.captcha' => 'The captcha is incorrect',
'username.regex' => 'Use English letters and digits only',
]);
$message = new Message();
$message->username = $request->get('username');
$message->email = $request->get('email');
$message->homepage = $request->get('homepage');
$message->text = strip_tags($request->get('text'));
$message->ip = $request->ip();
$message->browser = get_browser($request->header('User-Agent'))->browser;
$message->save();
}
$messages = Message::sortable(['created_at' => 'desc'])->paginate(25);
return view('Guestbook.viewAll', [
'newMessage' => new Message(),
'messages' => $messages
]);
}
}

viewAll 处理 GET 和 POST 请求,但问题是当我成功提交保留所有先前输入值的数据时,表单不会重置。

我已经检查了服务器发送的内容,似乎它发送了带有最后一个值的输入。我不知道该怎么办,请帮忙!

视图:

@extends('base')
@section('title', 'Guestbook')
@section('baseContent')
{!! BootForm::open(['model' => $newMessage]) !!}
{!! BootForm::text('username') !!}
{!! BootForm::email('email') !!}
{!! BootForm::text('homepage') !!}
{!! BootForm::textarea('text') !!}
{!! captcha_img() !!}
{!! BootForm::text('captcha') !!}
{!! BootForm::submit('Send') !!}
{!! BootForm::close() !!}
@if (count($messages) > 0)
<table class="table table-bordered">
<tr>
<td>@sortablelink('username', 'Username')</td>
<td>@sortablelink('email', 'Email')</td>
<td>Homepage</td>
<td>@sortablelink('created_at', 'Data added')</td>
<td>Message</td>
</tr>
@foreach ($messages as $message)
<tr>
<td>{{ $message->username }}</td>
<td>{{ $message->email }}</td>
<td>{{ $message->homepage }}</td>
<td>{{ $message->created_at }}</td>
<td>{{ $message->message }}</td>
</tr>
@endforeach
</table>
@else
There is nothing to display here.
@endif
{!! $messages->appends(Request::except('page'))->render() !!}
@endsection

在此处查看所有代码。

BootForm 是这样编译的

<div class="form-group">
<label for="username" class="control-label col-md-2">Username</label>
<div class="col-md-10">
<input type="text" value={{old('username')}} name="username" class="form-control">
</div>

old('params')是一个帮助程序方法,它将以前的输入保留在会话中。其次,你有与之关联的模型。

我希望这有帮助

最新更新