用户数据验证

添加用户控制器 store 方法

app/Http/Controllers/UsersController.php

validate($request, [
            'name' => 'required|max:50',
            'email' => 'required|email|unique:users|max:255',
            'password' => 'required'
        ]);
        return;
    }
}

数据验证方式

在实际开发中,我们经常需要对用户输入的数据进行 验证,在验证成功后再将数据存入数据库。

在 Laravel 开发中,提供了多种数据验证方式,在这里我们使用其中一种对新手较为友好的验证方式 validator 来进行讲解。

validator 由 App\Http\Controllers\Controller 类中的 ValidatesRequests 进行定义,因此我们可以在所有的控制器中使用 validate 方法来进行数据验证。validate 方法接收两个参数,第一个参数为用户的输入数据,第二个参数为该输入数据的验证规则。

验证规则

如果需要同时验证多个条件时,则可使用 | 对验证规则进行分割。

存在性验证

'name' => 'required'

长度验证

'name' => 'min:3|max:50'

格式验证

'email' => 'email'

唯一性验证

针对于数据表 users 做验证:

'email' => 'unique:users'

但这种验证方式还是不够严谨,所以我们需要在一开始创建 用户数据表 时便设置邮箱字段的唯一属性。这个 Laravel 在默认给我们生成的用户表迁移文件中便已经默认设定好了。

密码匹配验证

用户在输入密码时,保证两次输入的密码一致:

'password' => 'confirmed'

添加 csrf_field 方法

在我们使用 POST 方法提交表单时,Laravel 为了安全考虑,会让我们提供一个 token(令牌)来防止我们的应用受到 CSRF(跨站请求伪造)的攻击。

所以我们需要在表单元素中添加 Blade 模板为我们提供的 csrf_field 方法。该方法在 Blade 模板中调用如下:

{{ csrf_field() }}

相当于 HTML 如下所示:

由于输入框为 hidden 类型,因此该 input 元素在页面上是不可见的。现在让我们为注册表单添加 csrf_field 方法。

resources/views/users/create.blade.php

为注册表单添加 csrf_field 方法。

resources/views/users/create.blade.php

@extends('layouts.default')
@section('title', '注册')

@section('content')
注册
{{ csrf_field() }}
@stop

你可能感兴趣的:(用户数据验证)