如何应用服务器端验证

时间:2017-05-24 06:20:18

标签: validation cakephp

我是蛋糕新手,我需要有关服务器端验证规则实施的帮助。我现在已经在模型中编写了一些代码规则,这些规则如何应用于提交的表单。请解释一下。

App::uses('AppModel', 'Model');

class User extends AppModel {
    public $validate = array(   
    'username' => array(
        'rule' => 'isUnique',
        //'required' => true,
        //'allowEmpty' => false,
        'on' => 'create', // here
        'last' => false,
        'message' => 'This email is already in use. Please try another email.'
    )


}

1 个答案:

答案 0 :(得分:-1)

假设您的查询是关于如何为模型创建自定义验证规则

您可以使用cakephp的自定义验证规则属性

  1. 在模型中定义一个自定义规则函数,其中包含验证传递数据的代码
  2. 该函数的第一个参数应该是$ check,它是一个关联数组,其字段名称作为索引应用于其中,其数据作为值
  3. 您可以根据需要定义其他参数,但请确保在$validate数组中定义规则时传递这些数据
  4. 如果验证通过,则返回true
  5. 现在在$validate数组
  6. 中定义您的规则

    让我们考虑您已为模型中的字段用户名定义了customRule函数

    // $ arg1和$ arg2取决于您的决定,您可以拥有最多n args

    public function customRule($check, $arg1, $arg2) 
    {
        *//code logic goes here*
    }
    

    现在定义$ validate array

    public $validate = array(
        ‘username’ => array(
            ‘rule’ => ‘customRule($arg1, $arg2),
            ‘message’ => ‘validation failure message'
        )
    );
    

    现在将使用$ check作为array(‘username’ => ‘<FORM DATA VALUE>’)

    调用customRule函数

    参考link