1

我想知道是否有人可以为我解决问题。

在我的 codeigniter 表单验证规则中,我有一个名为 email_exists 的回调,其设置如下

->set_rules( 'login', 'Email Address', 'trim|valid_email|required|xss_clean|callback__email_exists' )

在同一个控制器中,我有它调用的函数如下

function _email_exists()
{
    // Code here
}

这完美地工作,我无法从 URL 访问该方法,因为方法名称之前的 _ ......所以它工作完美。

我查看了 CI 文档,它说回调要使用私有方法……但每次我在方法名称前加上“私有”时,它根本不起作用。

保持原样可以吗。

干杯,

4

2 回答 2

1

该方法不能是私有的,因为验证类无法访问回调方法。

该文档还显示回调方法应声明为公共。

你应该保持原样。

于 2013-03-11T09:08:18.340 回答
0

可以保持原样,因为 CodeIgniters _ 前缀将阻止公共访问该方法(这意味着它无法通过 URL 访问该函数,正如您提到的)。

手册在这部分可能有点混乱,因为它们将前缀为 _ 的函数定义为私有(它们的真正含义是对公共访问隐藏)。然而,一个函数可能仍被声明为公共的(就像您在代码中所做的那样),但仍然对公共访问隐藏。

于 2013-03-11T09:17:28.390 回答