首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果Validator失败,不要返回Back - Laravel

在Laravel框架中,Validator是用于验证用户输入数据的工具。当我们需要验证用户提交的表单数据是否符合特定的规则时,可以使用Validator来进行验证。如果Validator验证失败,通常我们会返回到上一个页面,让用户重新填写正确的数据。

在这个问题中,如果Validator失败,不要返回Back意味着我们不应该直接返回到上一个页面,而是应该采取其他的处理方式。一种常见的处理方式是将错误信息返回给用户,并显示在当前页面上,让用户知道哪些数据填写有误。

在Laravel中,我们可以通过在控制器中使用Validator类来进行数据验证。以下是一个示例代码:

代码语言:txt
复制
public function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'name' => 'required',
        'email' => 'required|email',
        'password' => 'required|min:6',
    ]);

    if ($validator->fails()) {
        return redirect()->back()->withErrors($validator)->withInput();
    }

    // 验证通过,继续处理其他逻辑
}

在上面的代码中,我们首先使用Validator::make方法创建一个验证器实例,传入需要验证的数据和验证规则。如果验证失败,我们使用redirect()->back()方法将用户重定向回上一个页面,并使用withErrors方法将错误信息传递给视图。同时,使用withInput方法将用户之前填写的数据闪存到Session中,以便在视图中显示。

在视图中,我们可以使用$errors变量来获取错误信息,并将其显示给用户。以下是一个简单的视图示例:

代码语言:txt
复制
<form action="/user" method="POST">
    @csrf

    <input type="text" name="name" value="{{ old('name') }}">
    @error('name')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror

    <input type="email" name="email" value="{{ old('email') }}">
    @error('email')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror

    <input type="password" name="password">
    @error('password')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror

    <button type="submit">Submit</button>
</form>

在上面的视图中,我们使用old函数来获取之前用户填写的数据,并将其显示在输入框中。同时,使用@error指令来显示对应字段的错误信息。

总结:当Validator验证失败时,我们不应该直接返回到上一个页面,而是应该将错误信息返回给用户,并显示在当前页面上。这样用户就可以知道哪些数据填写有误,并进行相应的修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例

    本文实例讲述了laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作.分享给大家供大家参考,具体如下: 通常在项目中,我们会对大量的前端提交过来的表单进行验证,如果不通过,则返回错误信息...但是返回的json格式并不是我们想要的,这个时候,我们就需要自定义返回错误结果。...'姓名必填', 'pwd.required' = '密码必填', ]; } } 注意,父类 FormRequest中的 failedValidation() 方法用来处理验证失败...对象,不是 Illuminate\Validation\Validator不要搞错了。...更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及

    3.3K41

    Laravel 5.0 之 表单验证类 (Form Requests)

    开始实践: 快速创建一个 Laravel 5.0 项目 如果你还没有创建好的 Laravel 5.0 项目, 用下面的命令创建一个: $ composer create-project laravel/...true; } // 可选: 重写基类方法 public function forbiddenResponse() { // 这个是可选的, 当认证失败返回自定义的..., 403); } // 可选: 重写基类方法 public function response() { // 如果需要自定义在验证失败时的行为, 可以重写这个方法...$dontFlash: 重定向时不要传递的输入项的键 (默认值: ['password', 'password_confirmation'])....如果你阅读本文觉得还不够, 可以观看关于 Form Request 的这个视频. 本文写作时, Laravel 5.0 还未正式发布, 因此上述内容最终可能还会有修改, 或者作者遗漏了某些东西.

    3.8K50

    Laravel 参数验证的疑与惑

    1 通过extend方法扩展 //这是一个简单的参数比较的验证规则,Laravel5.8中提供,Laravel5.5中未提供 //验证规则如下: 'max_num'=>'gte:min', Validator...验证器在验证参数的过程中,如果找到匹配的验证规则,则直接进行验证。否则调用魔术方法__call查找扩展验证函数。扩展函数返回布尔值,返回true则表示验证通过,返回false表示验证失败。...message方法,用于提供验证失败的错误提示信息。 使用自定义验证类,相对于extend方法扩展有一个很大的bug就是无法在自定义类中获取到当期的验证器对象。...总结 通过以上源码的学习,可以看出Laravel验证器的创建都是用过验证器工厂类创建的。如果需要自定义验证器,可以通过修改验证器工厂类,或者设置验证器工厂类的resolver属性接管验证器的实例化。...如果需要实现,则需要使用自定义验证器,将验证器传入到验证规则中去。 Laravel本身提供了ClosureValidationRule的验证规则用于处理回调函数验证规则。

    3.4K00

    关于Laravel参数验证的一些疑与惑

    如果需要自定义验证器类(比如我需要把5.8的一些新功能迁移到5.5的版本上),有两种方式: 一,创建一个自定义的工厂类。...1 通过extend方法扩展 //这是一个简单的参数比较的验证规则,Laravel5.8中提供,Laravel5.5中未提供 //验证规则如下: 'max_num'= 'gte:min', Validator...验证器在验证参数的过程中,如果找到匹配的验证规则,则直接进行验证。否则调用魔术方法__call查找扩展验证函数。扩展函数返回布尔值,返回true则表示验证通过,返回false表示验证失败。...message方法,用于提供验证失败的错误提示信息。 使用自定义验证类,相对于extend方法扩展有一个很大的bug就是无法在自定义类中获取到当期的验证器对象。...如果需要实现,则需要使用自定义验证器,将验证器传入到验证规则中去。 Laravel本身提供了ClosureValidationRule的验证规则用于处理回调函数验证规则。

    6.6K31

    laravel实现上传图片,并且制作缩略图,按照日期存放的代码

    = Validator::make($inputData,$rules); if($validator- fails()){ return back()- withErrors($validator...; } } 后端处理主要思想:首先通过Validator类库来检验当前上传上来的文件是否符合要求,如果符合要求,就可以对图片进行处理了;处理的时候我是先把要保存图片的相对地址给拼接好,然后通过laravel...里面的public_path函数得出绝对的local地址;再去判断该文件夹是否存在,如果不存在那就创建该文件夹。...创建好文件夹后我们就应该对上传上来的图片进行进一步处理了,比如我这里需要制作它的缩略图,并且保证图片横纵比,如果有其他的要求,可以前往Intervention Image类库自行查看怎么制作。...以上这篇laravel实现上传图片,并且制作缩略图,按照日期存放的代码就是小编分享给大家的全部内容了,希望能给大家一个参考。

    89431

    3分钟短文 | Laravel表单验证没规则可用?你试试自定义,真香!

    引言 Laravel内部提供了很多用于表单验证的规则,都是通过 Validator 对象进行解析和处理。但是我们会遇到现有规则无法满足验证需求的情况。 ?...用laravel的方式该如何实现呢? laravel内我们可以使用扩展功能,自定义验证规则,扩展 Validator 对象的验证规则。...$validator) { $min_field = $parameters[0]; $data = $validator->getData(); $min_value = $data...[$min_field]; return $value > $min_value; }); 其中 greater_than_field 是验证规则的缩写,我们只需传入验证参数,指定返回 true...对于验证失败返回的错误信息,使用下面的代码: Validator::replacer('greater_than_field', function($message, $attribute, $rule

    58620

    3分钟短文:Laravel验证用户输入,不要把啥都存到系统里

    引言 从请求对象Request创建之后,系统开始接收用户输入数据,设计程序记住一条,永远不要相信用户的输入。你永远也想不到,用户会把什么样稀奇古怪的数据提交上来。...如果存在则验证不通过。 max 字符串长度最大125 上面这个是使用了Request继承的验证方法,如果我们手动构造验证规则,如何做呢?...其实, laravel提供的Validator对象,提供了众多的验证规则,验证方法,验证逻辑,只要我们进行手动实例化, 对传入的数据按规则进行整理,即可使用其特性。 为方便演示,我们在路由内直接构造。...而传入的需要验证的数据,使用的是 $request->all() 也就是请求体格式化之后的数组,接着对象 $validator 就可以调用验证器的方法处理了。 在验证失败时,直接进行了重定向的返回。...对于通用的验证规则, 如果能够提取出来,建议将其独立出来进行使用。这样自定义的方法较为灵活可扩展。 Happy coding :-)

    78620

    3分钟短文:Laravel的“南天门”,过滤掉七七八八的数据

    如果你对源码稍加留意,可能就会注意到,laravel的 Controller 类引入了 ValidatesRequests 这个验证 trait。...是的,这是laravel框架写好了,如果验证失败,会使用 MessageBag 这些类来状态验证失败的信息,然后将错误信息渲染到公共模板部分,使用 $errors 接收,这是一个对象,可以手动遍历输出。...如果你想手动处理,那么只要在视图内使用下面的代码打印即可,因为错误信息是全局的。...然后显式地使用 $validator->fails() 方法验证是否验证失败。...如果验证失败,构建 Response 对象进行重定向,并使用 withErrors 语法糖将验证提示信息返回,而重定向的页面内,可以使用 $errors 变量获取到所有的错误信息。

    1.9K10

    Laravel5.2之Validator

    引言: Laravel提供了Validator模块,可解决表单提交验证等一些需求,并且可以在视图View中显示错误验证信息,交互还是很友好的。注明:作者水平有限,有错误或建议请指正,轻拍。...'); } 2、写表单视图页面 该方法直接返回一个表单提交页面,表单提交页面视图代码为,文件路径为resources/validator/validator.blade.php: <html...5、定制显示错误信息 错误信息是由laravel默认的,如果自定义显示错误信息,如: public function postValidator(Request $request){ /.../test/validator','PHPTestController@getValidator'); Route::post('laravel/test/validator', 'PHPTestController...1、在TestValidatorRequest类里写验证规则 authorize()方法主要用来设置用户权限,返回false时会返回一个403并且控制器代码不能执行,如没有权限的用户不能提交表单。

    13.3K31

    Laravel Validation 表单验证(二、验证表单请求)

    $validated = $request->validated(); } 如果验证失败,就会生成一个让用户返回到先前的位置的重定向响应。...如果传入的请求是 AJAX,会向用户返回具有 422 状态代码和验证错误信息的 JSON 数据的 HTTP 响应。...自动重定向 如果你想手动创建验证器实例,又想使用 validates 方法提供的自动重定向,那么你可以在现有的验证器示例上调用 validate 方法。如果验证失败,用户将会自动重定向。...passes 方法接收属性值和名称,并根据属性值是否符合规则而返回 true 或 false。 message 方法应返回验证失败时应使用的验证错误消息: <?...闭包接收属性的名称、属性的值、失败回调,如果验证失败需要调用 $fail: $validator = Validator::make($request->all(), [ 'title' =>

    29.2K10
    领券