Я написал простую функцию обратного вызова, которая не работает. Мои другие обратные вызовы (которые находятся в том же файле библиотеки) работают нормально, поэтому я думаю, что проблема связана с моим кодом.
Параметр, передаваемый в функцию обратного вызова, принимает форму фрагмента PHP, который eval () ed для формирования части оператора if () в самой функции.
Вот что в контроллере:
$this->form_validation->set_rules('rating', 'Rating','required');
$condition = $this->input->post('rating') . " != 'Excellent'";
$this->form_validation->set_rules('details', 'Details', 'required_conditional[' . htmlentities($condition) .']');
А вот и сама функция обратного вызова:
function required_conditional($str, $condition)
{
if (eval(html_entity_decode($condition))) {
if ($str == '') {
$this->set_message('required_conditional', 'The %s field is required');
return FALSE;
}
else {
return TRUE;
}
}
}
Есть идеи, почему это ни у кого не работает?
Спасибо, Мэтт