我正在使用laravel 5.3.30并创建一个包含表单的个人资料页面,并尝试在提交表单时验证数据,但在提交表单后我没有收到任何错误,只是刷新页面。
路线档案:
Route::get('/', function () {
return view('main');
});
Auth::routes();
Route::get('/home', 'HomeController@index');
Route::get('logout', '\App\Http\Controllers\Auth\LoginController@logout');
Route::resource('profile','ProfileController');
个人资料表格:
{!! Form::open(array('route'=>'profile.store')) !!}
<div class="form-group">
{{Form::label('first_name','Firstname')}}<span class="required">*</span>
{{Form::text('first_name',null,['class'=>'form-control','placeholder'=>'Enter Firstname'])}}
</div>
<div class="form-group">
{{Form::label('last_name','Lastname')}}<span class="required">*</span>
{{Form::text('last_name',null,['class'=>'form-control','placeholder'=>'Enter Lastname'])}}
</div>
{{Form::submit('Create',array('class'=>'form-submit btn btn-success btn-block btn-lg'))}}
{!! Form::close() !!}
Profile Controller中的验证:
public function store(Request $request)
{
$this->validate($request,array(
'first_name'=>'required|max:255',
'last_name'=>'required|max:255'
));
}
当我提交表单而没有填写任何内容时,它只是刷新页面而不显示任何错误。请提出建议。提前谢谢。
答案 0 :(得分:1)
看起来您忘记从控制器发送错误并在视图中打印。
这里的控制器代码应该是
public function store(Request $request)
{
$this->validate($request,array(
'first_name'=>'required|max:255',
'last_name'=>'required|max:255'
));
// include this line incase of validation error
return $validator->errors()->all();
}
您需要在视图中打印错误才能了解用户
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif