我努力使「任何事情作爲一項規則」的方式工作,笨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;
}
它創建類似這樣的:
$data['fields']['add_member_membership_number'] = $this->core->generate_field('membership_number', 'Membership number', $this->validation_rules['add_member_membership_number']);
首先,它不是一個匿名函數,其次,它執行,我想我擁有了一切正確的,所以WH這是不是工作?
我設法讓它通過將函數從我的表單驗證類移動到本地類來工作。即使這解決了眼前的問題,但這是一個糟糕的解決方案,所以仍然在尋找適當的答案,如果有人有我可以嘗試的東西:-)謝謝! –