我正在使用規則中的回調驗證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