`

CakePHP中文教程6

    博客分类:
  • web
阅读更多

第十章 数据正确性(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 blog</h2>
<?=$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()方法显示出来

第十一章 访问控制表(Access Control Lists)

1 理解ACL如何工作

大多数权限很大的程序都需要某种形式的访问控制。ACL就是一种管理程序权限的简单持久的方法。ACL主要管理两件事情。需要东西的主体,和被需要的客体。在ACL系统中,想要东西的主体(经常情况下是用户)叫做access request objects,简称AROs。系统中被需要的客体(经常是方法或数据)叫做access control objects,简称ACOs。这些实体被成为objects是因为有时候被请求的object并不一定是人 <!-- 翻页 -->

分享到:
评论

相关推荐

    PHP的框架之CakePHP-CakePHP教程终极教程

    CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP的HTML格式的教程;CakePHP的使用技巧介绍;CakePHP开发的网站源码参考;CakePHP的中文资料很少,大部分...

    PHP的框架之CakePHP-CakePHP教程

    CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP的HTML格式的教程;CakePHP的使用技巧介绍;CakePHP开发的网站源码参考;CakePHP的中文资料很少,大部分...

    cakephp中文手册

    总之,无论你是初学者还是经验丰富的开发者,这份“CakePHP中文手册”都将是你探索和掌握这个强大框架的宝贵工具,帮助你在PHP开发领域更上一层楼。通过深入学习和实践,你将能够高效地构建出稳定、安全且易于维护的...

    CakePHP中文手册

    CakePHP中文手册作为开发者的重要参考资料,包含了全面的API文档、教程、最佳实践以及常见问题解答,帮助开发者更好地理解和运用CakePHP。 在**中文手册**中,你将找到以下关键知识点: 1. **安装与配置**:包括...

    CakePHP 中文手册.rar

    CakePHP是一个开源的PHP on rails的full-stack framework。最开始从Ruby On Rails框架里得到灵感。程序员可使用它来快速创建的Web应用程序。我们的首要目的是使你以一种预置的快速且不失灵活性的方式开展工作。

    CakePHP PHP MVC框架

    - **Cake中文手册.chm**:这是官方中文文档,包含了详尽的API参考和教程,帮助开发者快速掌握CakePHP的使用方法。 - **访问脚本之家.html**:可能是一个关于CakePHP或其他PHP技术的文章链接,提供更多的学习资源。 -...

    cakephp中文手册.pdf

    《CakePHP中文手册》是针对CakePHP框架的一份详细教程,旨在帮助开发者理解和使用这个基于MVC模式的PHP框架。本文将围绕手册中的核心概念和安装流程进行详述。 **一、MVC模式** MVC(Model-View-Controller)是一...

    php各类框架手册

    - **CSS2.0中文手册**和**CSS3.0参考手册**:这两本书籍详细阐述了CSS语言的核心概念,从选择器、盒模型到布局、动画,是网页样式设计的必备指南。 - **HTML4 参考手册**和**HTML5**:HTML4手册涵盖了基本的标记语言...

Global site tag (gtag.js) - Google Analytics