Skip to main content
Snippet

Añadir funciones a Form Validator Codeigniter

Comparte en:

Si bien es cierto que el form_validator de codeigniter tiene casi todas las funcionalidades necesarias, hay ocasiones en que lo que hay no cumple con nuestras necesidades por ejemplo el is_unique funciona muy bien pero cuando necesitamos validar un Update el is_unique se sale de nuestro requerimiento ya que el no toma en cuenta que por ejemplo valide este campo como único si pertenece al un id diferente del que se esta actualizando así que vamos a crear un is_unique que sirva tanto de Create como Update y lo llamaremos unique.

public function unique($value, $params) {
 list($table, $field) = explode(".", $params, 2); //Se separan el nombre de la tabla y el del campo
 $this->CI->form_validation->set_message('unique', 'El Registro ' . $value . ' ya existe');
 if (!empty($table) && !empty($field)) {
 if ($this->CI->input->post('id')) {//Si es update se agrega un where para que evalue el campo con los id's diferentes al de ese registro
 $this->CI->db->where('id !=', $this->CI->input->post('id'));
 }
 $this->CI->db->where($field, $value);
 $query = $this->CI->db->get($table)->row();
 if ($query)
 return FALSE;
 return TRUE;
 } else {
 show_error('Call to Form_validation::unique() failed, parameter not in "table.column" notation');
 }
 }
Comparte en:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Social media & sharing icons powered by UltimatelySocial