0

例如,Codeigniter 允许用户创建自己的验证规则

大批 (
            '字段'=>'用户名' ,
            '标签'=>'用户名' ,
            '规则'=>'callback_check_username'
        )

我可以使用上面的代码来检查用户名是否已经存在,创建一个函数 check_username。

function check_username($uname) //$uname 的用户名取自 post 数据
    {
      //检查用户名是否存在,返回true或false  
    }

我无法理解 check_username 如何知道 $uname 是什么,因为我创建的规则(上面的代码)调用它并且它没有参数?那么任何人都可以启发我吗?

4

3 回答 3

0

如果您遵循命名约定,看起来 Codeigniter 会自动传递表单值。将字符串 'callback_' 放在方法名称之前,例如 callback_username_check

然后 codeigniter 自动传递表单值。所以在你的例子中'$uname'

     function check_username($uname) 

也可以是函数 check_username($str) 就像 CI 文档中一样 - 变量名只是一个占位符,用于您将在该方法中进行的任何测试。

于 2013-08-08T00:20:04.247 回答
0

好吧,回调函数至少获得 1 个参数 - 发布的值。如果您想添加更多参数,您可以添加到规则中:callback_check_username[anotherParam]然后该函数将有 2 个参数:postedValue 和 anotherParam。但是,这可以使用 codeigniter 内置函数进行检查:is_unique[table.column]请参阅文档:http ://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#rulereference

于 2013-08-07T18:07:24.203 回答
0

CodeIgniter 验证规则有三个参数:

字段名称 - 您为表单字段指定的确切名称。

此字段的“人”名,将插入到错误消息中。例如,如果您的字段被命名为“用户”,您可以给它一个人名“用户名”。注意:如果您希望将字段名称存储在语言文件中,请参阅翻译字段名称。

此表单字段的验证规则。

第一个是字段 name,它在验证规则中设置为field属性,是传递给函数的内容。

如果您想完全了解其工作原理,那么您可以查看 CodeIgniter 的代码,尤其是system/libraries/Form_validation.php

于 2013-08-07T18:16:51.897 回答