Мне нужно отобразить сообщение об ошибке для пользовательского правила проверки, но я не могу этого сделать.
Это правило проверки:
$config = array(
....,
array(
'field' => 'general_sales_subaccount',
'label' => 'General Sales Subaccount',
'rules' => array(
'required',
'numeric',
array(
$this->subaccounts_model,
'is_valid'
)
),
)
);
$this->form_validation->set_rules($config);
И теперь это ссылочный метод модели:
public function is_valid($subaccount)
{
$subaccount_num_digits = $this->preferences->get('subaccount_num_digits');
if (strlen($subaccount) != $subaccount_num_digits ) {
$this->form_validation->set_message('is_valid', "The number of digits in %s doesn't match the length set to " . $subaccount_num_digits);
return false;
}
return true;
}
Правило, похоже, работает, но оно отображает это сообщение об ошибке:
Не удалось получить доступ к сообщению об ошибке, соответствующему имени вашего поля (функция Anonymous).
Есть идеи?
Вы не можете получить сообщение об ошибке, потому что вы не настраиваете имя функции. Вы можете изменить свою функцию правила, как показано ниже:
$config = array(
....,
array(
'field' => 'general_sales_subaccount',
'label' => 'General Sales Subaccount',
'rules' => array(
'required',
'numeric',
array( //you may get all in another array
'is_valid', // and tell codeigniter your functions name
array(
$this->subaccounts_model,
'is_valid'
)
)
),
)
);
$this->form_validation->set_rules($config);