フォーム検証ライブラリとカスタム コールバックを使用して、CodeIgniter でフォーム検証を行っています。
public function insert_user()
{
if($this->input->post('submit')) {
// load form validation library
$this->load->library('form_validation');
// configurations
$config = array(
array(
'field' => 'username',
'label' => 'Username',
'rules' => 'required|callback_username_check'
)
);
$this->form_validation->set_rules($config);
// .... continue ....
}
}
メソッドが公開されている場合、期待どおりに機能しています。
public function username_check($username)
{
// do some stuffs here
}
メソッドをプライベートにすると動作しません。
private function username_check($username)
{
// do some stuffs here
}
プライベート メソッドからのコールバックが機能しないのはなぜですか?
なぜこれが必要なのですか?
CodeIgniter コントローラのパブリック メソッドは、上記の例のように URL からアクセスできます
コールバック メソッドをパブリックにアクセスしたくありません。