验证失败后,Laravel重置输入值?

Kie*_*Duy 6 php laravel laravel-5 laravel-5.2

我现在很困惑,我正在从Laracast学习Laravel,根据讲师的说法,在验证失败后,表单不会重置用户输入的值.但是在测试验证时,当我提交表单重置每一件事.

另一个问题是当我尝试访问它时未定义的变量 $errors.

我的控制器

<?php

namespace App\Http\Controllers;


use App\Articles;
use App\Http\Requests\CreateArticle;
use Carbon\Carbon;
use App\Http\Requests;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class ArticlesController extends Controller
{



    public function create()
    {
        return view('articles.create');
    }


    public function store(Request $request)
    {
        $this->validate($request, [
            'title' => 'required',
            'body'  => 'required'
        ]);
        Articles::create($request->all());
        return redirect('articles');
    }

}
Run Code Online (Sandbox Code Playgroud)

我的看法

@extends('app')

@section('content')
    <h1>Create a new Articles</h1>

    <hr/>

    {!! Form::open(['url' => 'articles']) !!}

    <div class="form-group">
        {!! Form::label('title', 'Title: ') !!}
        {!! Form::text('title', null, ['class' => 'form-control']) !!}
    </div>


    <div class="form-group">
        {!! Form::label('body', 'Body') !!}
        {!! Form::textarea('body', null, ['class' => 'form-control']) !!}
    </div>


    <div class="form-group">
        {!! Form::label('published_at', 'Published On:') !!}
        {!! Form::input('text', 'published_at', date('Y-m-d'), ['class' => 'form-control']) !!}
    </div>


    <div class="form-group">
        {!! Form::submit('submit', ['class' => 'btn btn-primary']) !!}
    </div>


    @if(isset($errors))
    {{var_dump($errors)}}
    @endif
    {!! Form::close() !!}

@stop
Run Code Online (Sandbox Code Playgroud)

他使用v5.0而我正在使用v5.2

nri*_*ero 5

从您的控制器返回以下内容...

return redirect('articles')->withInput();
Run Code Online (Sandbox Code Playgroud)

看看是否有帮助.如果你想这样,你可以排除某些字段..

return redirect('articles')->withInput($request->only('email'))
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您没有使用

<div class="form-group">
{!! Form::label('title', 'Title: ') !!}
{!! Form::text('title', old('title'), ['class' => 'form-control']) !!}
</div>
Run Code Online (Sandbox Code Playgroud)

但有简单的输入字段,例如

<input id="Email" name="Email" type="email" class="uit-input" placeholder="your email address" value={{old('Email')}}>
Run Code Online (Sandbox Code Playgroud)

用旧数据“预填充”该值。