2010-08-16 16 views
8

Estoy tratando de personalizar el CSS/HTML para las pantallas de mensajes de error en codeigniter, así que también puedo aplicar una etiqueta y acondicionarlas.¿Cómo se personalizan/modifican los errores de codeigniter?

Intenté buscar en Google esto y buscar el manual, pero debo haber estado buscando los términos incorrectos. ¿Alguien puede ayudarme?

Respuesta

22

Usted puede hacer algo como esto ...

$this->form_validation->set_error_delimiters('<div class="error">', '</div>'); 

Véase la relacionada Codeigniter documentation

Nota: Se ha actualizado para corregir referencia de función (validación debe ser form_validation).

+0

Gracias, no tengo idea de cómo me perdí eso ... lo siento. – Walker

+2

Realmente no me gusta, que debe llamar a este método cada vez que necesita validar el formulario. Si quiere evitar una duplicación, puede configurarla globalmente con este método: http://chris-schmitz.com/changing-default-error-delimiters-in-codeigniter/ – petrkotek

+0

@petrkotek YOU DA MVP GRACIAS –

1
$this->validation->set_error_delimiters('<div class="error">', '</div>'); 
3

Recomiendo una manera más elegante.

Se trató un archivo MY_Form_validation.php y se lo colocó en la aplicación/bibliotecas con el siguiente código que reemplaza los delimitadores predeterminados.

class MY_Form_validation extends CI_Form_validation { 

    public function __construct() 
    { 
     parent::__construct(); 

     $this->_error_prefix = '<p class="error">'; 
     $this->_error_suffix = '</p>'; 
    } 
} 

Enlace a la original: http://chris-schmitz.com/changing-default-error-delimiters-in-codeigniter/

0

Se puede utilizar el método de "set_error_delimiters" de la biblioteca "Validación de formularios":

$this->validation->set_error_delimiters('<div class="error">', '</div>'); 

también puede hecho en código en línea con el asistente de formulario:

validation_errors('<div class="error">', '</div>') 

O creado extiende la clase en la biblioteca form_validation:

class MY_Form_validation extends CI_Form_validation 
{ 
    public function __construct($rules = array()) 
    { 
     // applies delimiters set in config file. 
     if(! isset($rules['error_prefix'])) 
     { 
      $rules['error_prefix'] = '<div class="error">'; 
     } 

     if(! isset($rules['error_suffix'])) 
     { 
      $rules['error_suffix'] = '</div>'; 
     } 

     parent::__construct($rules); 
    } 
} 

Me gusta el último método porque permite establecer un estilo por defecto y sobrescribir desde antes de explicar el método.

Lo siento por mi Inglés :)

0
$this->validation->set_error_delimiters('<div class="error">', '</div>'); 

Esta es la sintaxis incorrecta. el correcto es

$this->form_validation->set_error_delimiters('<div class="error">', '</div>'); 
Cuestiones relacionadas