我在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阅读文档时,我说我不需要做任何事情,它将是自动的。
有人知道我要去哪里错吗?
答案 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
从控制器传递到视图,尽管那可能只是您在谈论的“自动化”部分……我将不得不检查文档。