手册 >> 数据操作 >> 动态增加验证规则

动态增加验证规则

在数据验证的时候,我们有时会遇到动态增加验证规则的情况,实现起来也是非常的简单。

模型类中的成员变量$verifier,其实和普通的数组是一样的。所以动态增加验证规则,我们可以直接通过对$verifier赋值来实现。

如在上例中的lib_user的$verifier是这样的。

<?php
class lib_user extends spModel
{
	var $pk = "uid"; 
	var $table = "user"; // 数据表的名称
	var $verifier = array( // 验证登录信息
		"rules" => array( // 规则
			'uname' => array(  // 这里是对uname的验证规则
				'notnull' => TRUE, // uname不能为空
				'minlength' => 3,  // uname长度不能小于3
				'maxlength' => 12  // uname长度不能大于12
			),
		),
		"messages" => array( // 提示信息
			'uname' => array(
				'notnull' => "用户名不能为空",
				'minlength' => "用户名不能少于3个字符",
				'maxlength' => "用户名不能大于20个字符"
			),
		)
	);

 

在使用的时候,我们希望能加入一个“对邮箱地址”的验证,那么在控制器中,我们就可以对$verifier进行赋值。

		$userObj = spClass("lib_user"); // 实例化lib_user类
		
		$userObj->verifier['rules']['email'] = array( // 增加email的验证规则
			'notnull' => TRUE, 
			'email' => TRUE,   
			'minlength' => 8,  
			'maxlength' => 20, 
		);
		$userObj->verifier['messages']['email'] = array( // 增加email的验证提示
			'notnull' => 'email不能为空',
			'email' => '必须要是电子邮件格式',  
			'minlength' => 'email长度不能小于8', 
			'maxlength' => 'email长度不能大于20',
		);
		$results = $userObj->spVerifier($this->spArgs());

通过对$verifier数组的改变,就可以动态增加验证规则了。

当然,这是临时加入的验证规则,如果不是临时的,那么就可以直接写到$verifier上面。

 

$verifier的修改可以变更spVerifier的验证,同理,$linker的修改也可以变更spLinker的关联。