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
从您的控制器返回以下内容...
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)
用旧数据“预填充”该值。