首页 文章

laravel表单验证错误

提问于
浏览
1

版本:laravel 5.7

路由器:

Route::get('regist','User\RegistController@registView');
Route::post('regist','User\RegistController@regist');

形成:

<form class="form-signin" method="POST" action="/regist">
.....
</form>

验证:

$this->validator=Validator::make($input,$rule,$message);  
if($this->validator->fails()){
return \Redirect::back()->withErrors($this->err());
}

问题:

不要显示错误消息 . 需要在地址栏中按Enter键重新加载页面 . 想要使用Validateor :: make方法 . 如何修改它?

2 回答

  • 0

    要在表单上添加验证,您可以使用Laravel Request Validation类 . 这将帮助您在单独的课程中进行验证 .

    以下是请求类的参考: - https://laravel.com/docs/5.7/validation#form-request-validation

    这将有助于您进行验证并改进代码 .

  • 0

    如果验证工作正常,您是否将错误消息显示在您重定向到的页面上?

    例如,在您的刀片页面中,您是否做过类似下面的操作?

    @if(count($errors->all()) > 0)
        <div class="alert alert-danger" role="alert">
            <p><b>Required Fields Missing!</b></p>
            <ul>
            @foreach($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
          </ul>
        </div>
    @endif
    

    我将向您展示一个简单的示例,如果您在控制器中使用验证器外观

    use Illuminate\Support\Facades\Validator;
    

    在conroller用户中,代码如下

    public function update(Request $request, $id) //use of request
    {
        $this->validate($request, [
                'name' => 'required',
        ], [
            'name.required' => 'Name is required',
        ]);
    
    }
    

    如果验证失败,它将自动重定向,或者您可以使用验证器失败语句并发送修改后的消息 .

    之后,您应该放置一个if语句来显示错误消息,如下所示:

    @if(count($errors->all()) > 0)
        <div class="alert alert-danger" role="alert">
            <p><b>Required Fields Missing!</b></p>
            <ul>
            @foreach($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
          </ul>
        </div>
    @endif
    

    或者如果您只有一个已定义的错误消息,请使用:

    @if(Session::has('success'))
        <div class="alert alert-success" role="alert">
           { Session::get('success') }}
       </div>
    @endif
    

    希望这可以帮助

相关问题