私はCodeIgniterの3で「何も原則として」アプローチの作品を作るのに苦労しています:。自分のフィールド名の会員番号に対応するエラーメッセージにアクセスすることができません(匿名関数)
私は原則として以下のアレイの使用:次に
array(
'required',
array('memnum_unique', array($this->form_validation, 'memnum_unique'))
)
を、私は次のように定義された機能を有する:
public function memnum_unique()
{
$memno = $this->CI->input->post('membership_number');
$exists = $this->CI->votes_model->get_field_unique('membership_number', $memno, true);
if (!empty($exists))
{
$this->CI->form_validation->set_message('memnum_unique', 'The membership number has to be unique. This one has already voted.');
return false;
}
return true;
}
通常の状況では、私はis_unique
ルールを使用しますが、上記の機能は削除され、より多くの検証基準が含まれていますので、この方法で使用する必要があります。
関数が呼び出されます - 私はそれを確認できます。 if (!empty($exists))...
部分が実行されますが、どういうわけか、私はまだエラーメッセージ
Unable to access an error message corresponding to your field name Membership number.(Anonymous function)
は、フォームフィールドの生成コードは、私の「コア」モジュールでこのように設定されます:
public function generate_field($id, $label, $rules, $val = '')
{
$out = array(
'id' => $id,
'validation' => array(
'field' => $id,
'label' => $label,
'rules' => $rules
),
'value' => $val
);
return $out;
}
はそれはのように作成されますこれは:
最初に、それは無名関数ではなく、2番目に実行され、私はすべてが正しいと思うので、wh yはこれが動作していないのですか?
私が作ることに成功し関数をフォームの検証クラスからローカルクラスに移動することで動作します。これは即時の問題を解決しますが、これは馬鹿げた解決策です。誰かが私が試してみることができるものがあれば、まだ適切な答えを探しています:-)ありがとう! –