Laravel 5.6-验证后,表单未使用先前的值重新填充

时间:2018-07-01 09:24:00

标签: php laravel laravel-5

我在Laravel 5.6中有一个简单的表单,正在对其进行验证,我的表单如下所示。

   @if ($errors->any())
        <div class="alert alert-danger">
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif

<form action="{{route('posts.store')}}" method="POST">
   <input name="title" type="text">#
    <button type="submit" class="btn btn-success">Submit</button>
</form>

我的控制器就是这样。

public function store(Request $request)
    {

        $this->validate($request, [
            'title' => 'required',
        ]);

        $post = new Post;
        $title = $request->input('title');
        $post->save();
    }

这是有效的,但是当验证失败并显示错误消息时,它不会使用先前的值重新填充表单。在https://laravel.com/docs/5.2/requests#old-input阅读文档时,我说我不需要做任何事情,它将是自动的。

有人知道我要去哪里错吗?

2 个答案:

答案 0 :(得分:2)

如果要保留先前的输入,则需要使用old helper function,如向下滚动到“检索旧输入”一样,请参见链接的文档。

您需要将input更改为以下内容:

<input name="title" type="text" value="{{ old('title') }}">

title与您在输入的name属性中具有的值匹配的地方。

答案 1 :(得分:1)

您没有在视图中回显值。我99%确信以下检查isset()

<input name="title" type="text" value="{{$name}}">#

只需确保将$request->name从控制器传递到视图,尽管那可能只是您在谈论的“自动化”部分……我将不得不检查文档。

相关问题