meaning español cakephp3 buildrules cakephp validation

cakephp - español - validation laravel



¿Cómo puedo mostrar los errores de validación de entrada de CakePHP en un lugar diferente al predeterminado? (3)

Digamos que tengo un campo que se ve así en la vista:

<li class="bigfield"> <?php echo $form->input(''phone'', array( ''placeholder'' => ''Phone'', ''label'' => false, ''between'' => ''<br />'' )); ?> </li>

Si tengo una regla de validación en este campo y la validación falla, veo el siguiente HTML:

<li class="bigfield"> <div class="input text required error"> <br> <input name="data[Appointment][email]" type="text" placeholder="Email" maxlength="45" value="" id="AppointmentEmail" class="form-error"> <div class="error-message">Please enter a valid email address</div> </div> </li>

Me gusta hacer algo como mover el div mensaje de error a una parte completamente diferente de la página en lugar de tenerlo dentro con el mismo <li> que el campo en sí. ¿Cuál sería la forma más directa de hacer esto?


Desde el controlador se puede utilizar:

$this->Modelname->validationErrors[''TheFieldYouWantToDisplay''] = ''This is not correct''

En tu caso sería así en tu controlador:

$this->Appointment->validationErrors[''email''] = ''Error message''

Este código es solo para hacer un mensaje de error personalizado sobre la marcha. Pero también puede definir $ validate en el modelo y hacerlo de la forma en que Brancer lo describió.


Sólo actualizando una antigua publicación.

Los errores de validación se pasan automáticamente a la vista (como lo señaló @Angel S. Moreno)

$this->validationErrors


En tu controlador :

$this->set(''validationErrorsArray'', $this->ModelName->invalidFields());

Tendrá $validationErrorsArray en sus vistas.

ACTUALIZACIÓN (septiembre de 2014):

Desde la vista

Desde CakePHP 2.3 puedes acceder a la matriz de errores de validación desde la view :

$this->validationErrors;

Desde el controlador

Si intentó guardar datos en el controlador, puede acceder a los errores de validación de esta manera:

$this->ModelName->validationErrors;

Si desea validar los datos antes de guardarlos, hágalo de esta manera:

$this->ModelName->set($this->request->data); if ($this->ModelName->validates()) { $this->ModelName->save(); } else { $errors = $this->ModelName->validationErrors; // handle errors }

Validando datos desde el controlador