— 文章所属小组: CakePHP
CakePHP开发应用 第三章 简单应用的开发实例(1)
  • Moon.Wong
  • 评论(0)

添加数据验证

如果你已经进行到这一步,那么你现在应该已经有了一个可正常运行的Cake待做事项应用。 它具备添加事项,显示所有事项及其状态,以及编辑事项以便修改事项标题和状态的基本功能。但是我们仍然不满意。我们想要这个应用变成一个质量过硬的应用, 而用CakePHP打造质量过硬的应用简直太容易了。

所有网络应用都有一个非常重要的方面,即它会确认用户没有键入无效的输入。比如,某个用户 错误的添加了一个没有标题的事项。我们需要应用可以检测用户是否输入了标题。如果他们没有输入标题,我们的应用则不应该允许用户添加或者编辑一 个事项,而且还会给用户显示一个信息来阐明问题所在。添加这些检查措施我们称之为数据验证。不管我们的应用是大是小,具备恰当的数据验证都很重要。但是添 加数据验证是一项痛苦的工作而且及耗时间。如果我们的应用中有许多表单的话,这个问题会更加严重。

谢天谢地,CakePHP自带内置的数据验证功能,这会使得我们的工作轻松上许多。


动手时间:添加检验标题是否为空的数据验证规则。

1,在/CakeTooDoo/app/models中,打开我们创建的Task模型,在Task模型类中添加如下代码。添加后Task模型模样如 下:

<?php
class Task extends AppModel {
var $name = 'Task';
var $validate = array(
'title' => array(
'rule' => VALID_NOT_EMPTY,
'message' => 'Title of a task cannot be empty'
)
);
}
?>

2,在浏览器的地址栏中输入http://localhost/CakeTooDoo/tasks/add,打开添加事项的表单,然后添加一个无标 题的事项。该页面会显示如下错误提示信息:

<

怎么回事?

我们在Task模型中添加一个名为$validate数组。跟这个模型有关的数据验证规则 都是在这个数组中定义的。 我们然后定义了一个索引(index)名称title。每一个我们想要进行数据验证的字段在 $validate中都应该有一个索引。因为我们想要给tasks表中的title字段添加一个验证规则,我们就声明了一个跟字段同名称的索引名。

title索引指向的也是一个数列,该数列包含了两个名为rule和message的索 引。 rule索引指向的是该是一个内置的数据验证规则。在这个例子中,我们因为不想使让输入的标题为空,因此这个验证规则应该检查该项不为空。 CakePHP还内置了其他有用的验证规则。message索引指向的是一个错误提示信息,这里我们可以填上我们想要显示给用户一些错误提示信息。

现在,无论用户是添加还是编辑一个事项的标题时,CakePHP都会检查这些事先定义好的 数据验证规则。


前一页|目录|下一页

填写登录信息
用户名
密码