开发手册 欢迎您!
软件开发者资料库

FuelPHP - 验证

FuelPHP验证 - 从简单和简单的步骤学习FuelPHP,从基本到高级概念,包括简介,安装,架构概述,简单Web应用程序,配置,控制器,路由,请求和响应,视图,演示者,模型和数据库,表单编程,验证,高级表单编程,文件上传,Ajax,HMCV请求,主题,模块,包,Cookie和会话管理,事件,电子邮件管理,Profiler,错误处理和调试,单元测试,完整的工作示例。

验证是Web应用程序中频繁且重复次数最多的任务之一.用户在表单中输入所需数据并提交.然后,Web应用程序需要在处理数据之前验证数据.例如,用户输入员工数据,post_action需要在将其保存到数据库之前进行验证. FuelPHP为此提供了一个非常简单的类验证.

在FuelPHP中,验证的概念非常简单,它通过Validation类提供各种方法来正确验证表单.以下是验证的工作流程,

第1步 : 使用 forge 方法创建新的验证对象.

$ val = Validation :: forge();

第2步 : 使用add方法添加需要验证的字段.

$ val-> add('name','Employee name');

第3步 : 使用 add_rule 方法为添加的字段设置验证规则.

$val->add('name', 'Employee name')->add_rule('required'); $val->add('age', 'Employee age')->add_rule('required')    ->add_rule('numeric_min', 20)    ->add_rule('numeric_max', 30);

第4步 : 调用run方法来验证数据.

// run validation on just post if ($val->run()) {    // success } else {    // falier }

第5步 : 使用validated和error分别获取有效和无效字段.

$vars = $val->validated(); $vars = $val->error();

规则

FuelPHP包含许多要验证的规则,还提供了创建新规则的选项.验证类支持的规则如下,

  • 必需 : 要输入的值

  • required_with : 将另一个字段设置为伴随字段.如果设置了该字段,则还需要设置随播广告字段

  • match_value : 设置值与字段值匹配

  • match_pattern : 将要匹配的值设置为带有字段值的正则表达式

  • match_field : 将另一个字段的值设置为值以与字段的值匹配

  • match_collection : 将要匹配的值设置为具有字段值的集合

  • min_length : 设置字段值的最小长度

  • max_length : 设置字段值的最大长度

  • exact_length : 设置字段值的确切长度

  • valid_date : 将字段值设置为有效日期

  • valid_email : 将字段值设置为有效的电子邮件

  • valid_emails : 将字段的值设置为有效的电子邮件,以逗号分隔

  • valid_url : 将字段的值设置为有效的网址

  • valid_ip : 将字段的值设置为有效的IP

  • numeric_min : 设置字段值的最小值

  • numeric_max : 设置字段值的最大值

  • numeric_between : 设置字段值的最小值和最大值

  • valid_string : 与正则表达式相似但更简单

$val->add('username', 'User name')->add_rule('valid_string', array('alpha, dots');

此处,alpha表示字母字符和点引用to(.).有效字符串只是包含字母字符和(.)的字符串.其他选项是大写,小写,特殊,数字,空格等.

工作示例

我们可以更新添加员工功能以包含验证.只需更新员工控制器的 post_add 方法,如下所示.

public function post_add() {    $val = Validation::forge();    $val->add('name', 'Employee name')->add_rule('required');    $val->add('age', 'Employee age')->add_rule('required')      ->add_rule('numeric_min', 20)       ->add_rule('numeric_max', 30);        if ($val->run()) {       $name = Input::post('name');       $age = Input::post('age');        $model = new model_employee();       $model->name = $name;       $model->age = $age;       $model->save();        Response::redirect('employee/list');    } else {       Response::redirect('employee/add');    } }

在这里,我们已将名称和年龄指定为必填字段. 年龄需要介于20到30之间.如果两个规则都有效,那么员工数据将被保存并重定向到员工列表页面.否则,员工数据将被拒绝并重定向以添加员工页面.