Просто хотел бросить несколько быстрых фрагментов кода на свой путь.Я хотел сделать это, и этот вопрос был одним из первых записей в Google, когда я сделал свой поиск.Я черпал вдохновение из других ответов, и вот что я сделал, что сработало для меня (YMMV):
$this->form_validation->set_message('contactVerify', 'Either Phone or Email is required');
...
$this->form_validation->set_rules('phone', 'Phone', 'trim|callback_contactVerify[email]|xss_clean');
$this->form_validation->set_rules('email', 'Email', 'trim|callback_contactVerify[phone]|valid_email|xss_clean');
...
public function contactVerify($contact, $otherField) {
return ($contact != '' || $this->input->post($otherField) != '');
}
Поскольку это очень простая функция проверки, я заранее установил сообщение об ошибке, чтобыдолжны установить его внутри функции проверки.Я передаю другое поле, которое хочу проверить в качестве второго аргумента через квадратные скобки.
Надеюсь, это полезно.