Laravel表单在成功提交后不会重置

时间:2017-07-11 16:10:48

标签: laravel

这是我的控制者:

class GuestbookController extends Controller
{
    public function viewAll(Request $request)
    {
        if ($request->method() === 'POST') {
            $this->validate($request, [
                'username' => 'required|string|regex:/^[a-zA-Z\d]+$/',
                '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
        ]);
    }
}

我正在使用此plugin。 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

查看所有代码here

1 个答案:

答案 0 :(得分:1)

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')是一个帮助方法,它将先前的输入保持在会话中。其次,你有与之相关的模型。

我希望这会有所帮助