`

cakephp中扩展自定义验证规则

    博客分类:
  • PHP
 
阅读更多
  在CAKEPHP中,有多达26条验证规则可以用,详细的见这里:
http://book.cakephp.org/view/1181/Adding-your-own-Validation-Methods#!/view/1152/Core-Validation-Rules

但如何扩展自定义呢?比如一个例子中,只对管理员用户要校验输入用户名,普通用户不用
(一个很极端的例子),可以这样做:
class User extends AppModel {  
  var $name = 'User';  
  var $validate = array(
         'name' => array('notempty' =>
array('rule' => array('notempty'),          
      'message' => 'Please enter first name',
......

.......
     'username' => array('custom' =>
    array('rule' => array('validateDependentFields'),    
            'message' => 'Please enter height',
这里对username使用自定义的方法,定义一个方法validateDependentFields去校验

方法为:
 

function validateDependentFields($field){  
   $passed=true; 
    switch(true){     
    case array_key_exists('username',$field):    
         if(  $this->data['User']['user_type_id']==1 and (!isset($this->data['User']['username']) or empty($this->data['User']['username'])) )
{               
  $passed=false;      
       }
else{      
           $passed=true;           
  }      
   break;      
   case array_key_exists('class_of',$field):       
      if(  $this->data['User']['user_type_id']==1 and (!isset($this->data['User']['class_of']) or empty($this->data['User']['class_of'])) )
{   
              $passed=false;    
        
 }else
{           
      $passed=true; 
            }      
   break;  
   }     
return $passed; 
}


   这里假如user_type_id=1为管理员,则返回true,指示使用校验规则;否则就不校验,返回false
分享到:
评论

相关推荐

    cakephp 中文手册

    1. **数据验证**:在模型层,可以设置数据验证规则,确保输入数据的完整性和合法性。 2. **错误处理**:框架提供了统一的错误处理机制,可以捕获并优雅地处理运行时错误和异常。 ### 五、组件和行为 - **组件...

    CakePHP 1.2 API 中文文档

    开发者可以在模型中定义验证规则,确保输入数据的完整性和准确性。 **哈希与安全** CakePHP 1.2 包含了加密和哈希类,用于处理密码存储和敏感数据的安全性。例如,`Security::hash()` 函数用于安全地存储用户密码。...

    cakephp 中文文档

    - **路由(Route)**:用于定义 URL 与控制器动作之间的映射关系,可以通过自定义路由规则来实现更加灵活的 URL 设计。 - **插件(Plugin)**:是包含了一组特定功能的独立包,可以轻松地在多个项目中复用。例如,...

    cakephp中文手册.pdf

    它是应用程序的核心,与数据库交互,处理数据验证和业务规则。 2. **View(视图)**:负责呈现数据给用户。视图通常包含HTML、CSS和JavaScript,用于渲染用户界面。 3. **Controller(控制器)**:作为模型和视图...

    cakephp 框架书籍 英文版

    - **更多关于模型**:深入探讨了模型的各种高级特性,如关联关系、验证规则等。 #### 七、Core Libraries(核心库) - **通用目的**:概述了CakePHP提供的各种通用库和工具,如数据库访问对象(DAO)、日志记录等...

    cakephp-1.2 manual

    9. **验证(Validation)**:手册会介绍如何在模型中设置数据验证规则,确保用户输入的数据符合要求。 10. **调试与性能优化**:学习如何使用 CakePHP 的调试模式进行问题排查,以及如何进行性能优化,如使用缓存和...

    CakePHP框架指南

    5. 数据验证和过滤:CakePHP提供了强大的数据验证工具,确保输入数据的有效性,同时还有过滤功能用于清理数据。 6. 插件系统:CakePHP框架支持插件,这是一种可以添加额外功能的代码包。用户可以通过安装插件来扩展...

    CakePHP PHP MVC框架

    2. **自动验证**:对表单数据进行验证,确保输入符合预设规则。 3. **ORM(对象关系映射)**:通过ActiveRecord模式,提供了一种简单的数据库操作方式,无需编写SQL语句。 4. **CRUD操作**:内置创建(Create)、读取...

    cakephp-1.3.21.zip

    1. 数据验证:提供内置的验证规则,可轻松确保输入数据的有效性,减少程序错误。 2. 蛋糕式路由:自动映射URL到控制器方法,简化URL管理和路由配置。 3. 自动化 CRUD:支持快速创建、读取、更新和删除数据,降低...

    cakephp 1.2版本API

    5. 表单处理:在1.2版本中,CakePHP提供了强大的表单处理功能,包括自动验证、错误处理和数据填充。API中包含关于FormHelper的使用,帮助开发者轻松创建和处理表单。 6. 测试与调试:CakePHP 1.2提供了内置的测试...

    cakephp-2.4.1

    3. **路由系统**:CakePHP的路由机制允许开发者自定义URL结构,使网址更具语义化。它可以根据设定的规则将请求映射到特定的控制器和操作上。 4. **ORM(对象关系映射)**:CakePHP的ActiveRecord实现使得数据库操作...

    cakephp帮助文档

    - **路由配置**:自定义URL映射规则,使URL更具可读性和美观性。 - **数据验证**:在模型层对输入数据进行验证,确保数据的完整性和正确性。 #### 四、核心组件 - **模型**:深入理解模型的功能,如关联关系、行为...

    cakephp学习笔记

    ACL(Access Control List)访问控制机制是CakePHP中的一个重要部分,它允许开发者精细地控制用户对资源的访问权限。数据清理(Data Sanitization)功能则确保了输入数据的安全性,防止SQL注入等攻击。视图缓存...

    cakephp官方文档

    - **理解模型-视图-控制器(MVC)架构**:详细介绍了CakePHP中的MVC架构是如何工作的,以及各组成部分的作用。 - **获取帮助**:为开发者提供了多种途径来获取技术支持和社区资源,如官方论坛、邮件列表等。 #### ...

    cakePHP经典官方教程

    2. **模型(Model)**:模型代表数据库中的数据表或数据实体,负责与数据库进行交互,处理数据验证和业务逻辑。 3. **视图(View)**:视图负责展示数据,通常包含HTML、CSS和JavaScript,以呈现用户界面。视图可以...

    CakePHP manual zh 中文手册

    组件是可复用的代码块,常用于控制器中,如`AuthComponent`用于用户身份验证。 ### 11. ACL(访问控制列表) 蛋糕PHP提供了基于角色的访问控制,通过ACL,你可以精细控制哪些用户或角色可以访问哪些资源。 ### 12....

    cakephp-cakephp-2.0.0-dev-0-gbe96338

    CakePHP遵循MVC(Model-View-Controller)设计模式,这一模式在Web开发中被广泛采用,旨在分离业务逻辑、数据处理和用户界面,从而提高代码的可维护性和可扩展性。在2.0版本中,CakePHP对MVC模式进行了优化,使得...

    CakePHP的blog例子(增加了后台功能,嵌入了TinyMCE编辑器)

    这个“Blog”示例进一步扩展了基本的CakePHP应用,加入了后台管理功能,并集成了TinyMCE编辑器,这使得内容创作更加方便。 ** MVC 架构 ** 在MVC架构中,Model负责数据的处理和存储,View负责展示用户界面,而...

    cakePHP,学的可以参考一下

    6. 插件和组件:如何使用和创建自定义组件和插件来扩展功能。 7. 数据验证:如何设置模型规则以验证输入数据的合法性。 8. ACL(访问控制列表):如果项目中涉及权限管理,你可能需要了解如何实现用户角色和权限的...

    cakephp

    本节简要介绍了本书的结构和覆盖的主题,包括安装CakePHP、设置本地开发环境、运行MySQL数据库、使用PHPMyAdmin和其他MySQL管理工具、搭建第一个CakePHP应用以及如何修改和扩展应用的设计。 #### 七、安装CakePHP ...

Global site tag (gtag.js) - Google Analytics