我正在使用规则中的回调验证CodeIgniter中的表单验证数据库中的电子邮件。例如这个功能应该是公共还是私人?
$this -> form_validation -> set_rules('email', 'Email address', 'trim|valid_email|callback_email_exists');
的email_exists功能是:
public function email_exists($email)
{
$this -> load -> model('account_model');
$exists = $this -> account_model -> email_registered($email);
if ($exists == true)
{
$this -> form_validation -> set_message ('email_exists', 'Email already exists.');
return false;
}
return true;
}
它工作正常。但是,上面的email_exists
函数不应该是一个私有函数而不是公共的? 我尽量做到像私人和private function _email_exists($email)
我再打它由callback__email_exists
但是我得到的错误:
Fatal error: Call to private method Account::_email_exists() from context 'CI_Form_validation' in ....(line number)
谁能告诉我有什么不对?
你为什么认为它应该是私人的? – 2011-06-14 12:59:02
在控制器中的CI和许多其他框架中,可以从URI访问非专用函数作为方法。至少有一个原因。 'site.com/controller/email_exists' *会导致不必要的副作用。 – Ross 2011-06-14 13:01:00
@Tomalak Geret'kal,@罗斯所说的。 – Roman 2011-06-14 13:02:37