#1 jake

前面我们已经了解了spVerifier的规则验证,接下来我们继续改善这些验证规则,让它们可以更好服务于我们的应用程序。
请不断地完善您的验证规则及提示信息,因为这些规则不仅在当前的应用程序中可以使用,在未来的开发中也是可以直接使用的,这将提高了代码的可重用性,减少重复的工作,从而达到快速开发的目的。当然,您还可以登录到sp框架官方网站寻找网友们分享的验证规则。
还是使用上章的例子,我们为用户名的验证加入了信息提示:
class user extends spModel // 这是一个继承了spModel的数据类
{
        public $pk = 'uid';
        public $table = 'user';
   // 定义验证规则
        var $verifier = array(
                "rules" => array( // 规则
                        'username' => array(  // 这里是对username的验证规则
                                'notnull' => TRUE, // username不能为空
                                'minlength' => 5,  // username长度不能小于5
                                'maxlength' => 12, // username长度不能大于12
                        ),
                        'email' => array(   // 这里是对email的验证规则
                                'notnull' => TRUE, // email不能为空
                                'email' => TRUE,   // 必须要是电子邮件格式
                                'minlength' => 8,  // email长度不能小于8
                                'maxlength' => 20, // email长度不能大于20
                        ),
                ),
                "messages" => array( // 提示信息
                        'username' => array(
                                'notnull' => "姓名不能为空",
                                'minlength' => "姓名不能少于5个字符",
                                'maxlength' => "姓名不能大于20个字符",
                                'youare' => "看来你不是jake", // 没有出现在规则中的信息提示
                        ),
                )
        );
}               

这里我们可以看到,加入信息提示的方法和规则的写作方法差不多,而且与规则是一一对应的。如果某个规则存在对应的提示,那么当该规则不能通过时将返回对应的提示。同时也存在以下两种情况:


  • 规则没有对应信息提示,正如例子中的email的全部规则都没有对应的信息提示,那么规则不能通过时返回的提示将是规则的名称。
  • 信息提示存在,但是对应的规则却不存在。这并无问题,同时在重用性方面会有一定的方便。

相信我们看到了信息提示中有一个“ 'youare' => "看来你不是jake" ”的提示, 这youare就是一个自定义的验证规则。下章,我们将介绍如何创建自定义的验证规则。


2012-08-04 16:45:30