文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>php manual(9)

php manual(9)

时间:2007-07-19  来源:skilldream


第十章 数据正确性(Data Validation)
创建用户的数据正确规则可以确保model中的数据能够按照程序的业务规则,比如密码必须是8个字符,用户名仅仅包含字母等等
保证数据正确性,第一步要做的就是在model中创建数据正确的规则。使用Model::validate这个数组在model中定义,比如
例10.1 /app/models/user.php

php

class User extends AppModel {

   var $validate = array(

      'login' => '/[a-z0-9\_\-]{3,}/i',

      'password' => VALID_NOT_EMPTY,

      'email' => VALID_EMAIL,

      'born' => VALID_NUMBER

   );

}

?>

Validations定义使用perl的正则表达式,其中有一些事先定义在/libs/validators.php比如

VALID_NOT_EMPTY

VALID_NUMBER

VALID_EMAIL

VALID_YEAR

如果model的定义中(比如在$validate数组)出现了任何的validateions,都会在保存过程中被转化和检查(比如在Model::save()方法中)。确保数据正确可以直接使用Model::validates()(如果数据不正确则直接返回false)或者Model::invalidFields()(这个方法返回错误信息的一个数组)
但是通常,controller代码中数据都是隐式的,下面的例子解释了如何创建一个处理form的方法

php

class BlogController extends AppController {

   function add () {

      if (empty($this->params['data'])) {

         $this->render();

      }

      else {

         $this->post->set($this->params['data']);

         if ($this->post->save()) {

            $this->flash('Your post has been saved.','/blog');

         }

         else {

            $this->set('data', $this->params['data']);

            $this->validateErrors($this->post);

            $this->render();

         }

      }

   }

}

?>
这个方法使用的view如下:

h2>Add post to blogh2>

$this->formTag('/blog/add')?>

div class="blog_add">

p>Title:  $html->inputTag('title', 40)?>

   $this->tagErrorMsg('title', 'Title is required.')?>p>

p>$this->areaTag('body') ?>

   $this->tagErrorMsg('body', 'Body is required.')?>p>

p>$this->submitTag('Save')?>p>

div>

form>
Controller::validates($model[,$model…])方法用来检查添加到model的用户数据是否正确。Controller::validationErrors()方法返回model得到的错误信息,这些信息被view的tagErrorMsg()方法显示出来




相关阅读 更多 +
排行榜 更多 +
战地奇兵先锋队2 v2.0 安卓版

战地奇兵先锋队2 v2.0 安卓版

飞行射击 下载
战地奇兵先锋队2 v2.0 安卓版

战地奇兵先锋队2 v2.0 安卓版

飞行射击 下载
战地奇兵先锋队2 v2.0 安卓版

战地奇兵先锋队2 v2.0 安卓版

飞行射击 下载