Laravel开发:如何使用Laravel Validation验证请求数据?

2023年 8月 5日 59.4k 0

Laravel开发:如何使用Laravel Validation验证请求数据?

Laravel作为目前最流行的PHP框架之一,其原因之一就在于它提供了很多优秀的组件,其中之一是Laravel Validation。在Web开发过程中,我们常常需要验证从前端提交的数据是否符合规范,如表单提交等,这时候就需要使用Laravel Validation组件来进行数据验证。

本文将介绍Laravel Validation的基本用法及示例。

  • 引入Validation
  • 在Controller中引入Validator:

    use IlluminateSupportFacadesValidator;

    登录后复制

  • 验证规则
  • Laravel Validation支持多种不同的验证规则,包括必填、邮箱、日期等。我们可以根据需求进行选择。下表列举了一些常用的规则:

    规则 说明
    required 必填
    email 邮箱格式
    date 日期格式
    regex 正则匹配
    max 最大长度
    min 最小长度
  • 验证器构造
  • 使用Laravel Validaton需要先构造一个验证器,可以通过不同的方式进行构造,如:

    • 使用Validator门面的make方法:

    public function validate(Request $request)
    {
    $validator = Validator::make($request->all(), [
    'name' => 'required|max:255',
    'email' => 'required|email|unique:users|max:255',
    'password' => 'required|min:6|max:255',
    ]);

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

    // 验证通过,执行代码
    }

    登录后复制

    • 使用request验证:

    public function rules()
    {
    return [
    'name' => 'required|max:255',
    'email' => 'required|email|unique:users|max:255',
    'password' => 'required|min:6|max:255',
    ];
    }

    public function register(Request $request)
    {
    $this->validate($request, $this->rules());

    // 验证通过,执行代码
    }

    登录后复制

  • 验证错误信息
  • 如果验证失败,可以通过withErrors方法来获取错误信息,如:

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

    登录后复制

    然后在视图中调用$errors变量即可获取对应错误信息:

    @if ($errors->has('name'))

    {{ $errors->first('name') }}

    @endif

    登录后复制

  • 自定义错误信息
  • 在验证器构造的第二个参数中,可以通过设置自定义错误信息来对验证错误进行更加具体的提示,如:

    public function rules()
    {
    return [
    'name' => 'required|max:255',
    'email' => 'required|email|unique:users|max:255',
    'password' => 'required|min:6|max:255',
    ];
    }

    public function messages()
    {
    return [
    'name.required' => '名称不能为空',
    'email.required' => '邮箱不能为空',
    'email.email' => '请输入正确的邮箱地址',
    'email.unique' => '该邮箱已经被注册',
    'password.required' => '密码不能为空',
    'password.max' => '密码长度不能超过:max个字符',
    ];
    }

    public function register(Request $request)
    {
    $validator = Validator::make($request->all(), $this->rules(), $this->messages());

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

    // 验证通过,执行代码
    }

    登录后复制

    本文以上述代码为例进行了Laravel Validation的基本介绍,希望本文能够帮助到大家。

    参考资料:

    《Laravel框架》

    以上就是Laravel开发:如何使用Laravel Validation验证请求数据?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论