表单验证不在laravel中工作

时间:2017-03-20 09:20:38

标签: php laravel laravel-5

我正在使用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'
   ));
   }

当我提交表单而没有填写任何内容时,它只是刷新页面而不显示任何错误。请提出建议。提前谢谢。

1 个答案:

答案 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