Welcome Guest, Not a member yet? Register   Sign In
Validaciones Personalizadas
#3

(This post was last modified: 06-10-2021, 10:04 AM by shadowmx.)

Yo lo que e realizado para aplicar funciones de validación mas fácil las e cargado como Helper para usarlas en cualquier lado para empezar, por ejemplo creo un Helper (validation_helper.php)
Dentro creo mi función, en tu caso.
PHP Code:
if(!function_exists('reglaMeses')){
    function reglaMeses(int $mes): bool
    
{
      if($mes<or $mes>12){
        return FALSE;
      }else{
        return true;
      }
    
    
}


Sobre el error en respuesta en idiomas (Language) creo dentro dentro de la carpeta de idioma el archivo Validation.php
osea que quedaría el archivo con la ruta /app/Language/es/Validation.php el cual el contenido seria para esta funcion:

PHP Code:
return [
    // Rule Messages
  'reglaMeses'                => 'El campo {field} debe contener un mes valido.',
]; 

Cargo mi helper en mi BaseController que uso para todos mis controladores o en el controlado que requiera, segun tu gusto.
PHP Code:
helper['validation'

Y ya en mi Modulo o Controlador donde defina las validaciones lo incorporo.

Ejemplo en tu Modelo lo metemos como unas reglas personalizadas a tu gusto:
PHP Code:
protected $validando_fechas_amigusto    = [
        'meses'              => 'required|integer|max_length[2]|reglaMeses',
        'dias'              => 'required|integer|max_length[2]',
        'ubicacion_etc_etc'          => 'required',
    ]; 

Y en mi Controlador que carga el Modelo con las reglas definidas previamente, en la funcion o pagina que lo requiera ya sea post o get, (en mi caso Post) lo valido asi por ejemplo
PHP Code:
//Controlador XYZ en el Construct llamo mi modelo
public function __construct()
    {
        //Load
        $this->mimodulodefinidoatugusto = new \App\Models\mimodelo();
        // Alternativa a cargar el Modelo
        //$this->mimodulodefinidoatugusto = model('App\Models\mimodelo', false);
    
PHP Code:
//Controlador XYZ
public function mipagina()
{
  if ($_POST) {
    //SI no pasa la validacion mando un error para algun popup o funcion que recoga y muestre errores
    if (!$this->validate($this->mimodulodefinidoatugusto->validando_fechas_amigusto)) {
                        $content = [
                            'msj' => langv2('Error.some_entry_needs_to_be_corrected'),
                        ];
                        //Regreso a la pagina anterior y le cargo el error
                        return redirect()->back()->withInput()->with('error'$content);
                    
                    ///SI paso la validacion ejecuto lo que requiera con los datos.
                  else {
                    //Recupero mis valores y ya los utilizo como quiera
                    $mes $this->request->getPost('mes');
                    $dia $this->request->getPost('dia');

                  }


Y en mi plantilla de vista que esta dentro de la carpeta view cargo la funcion de validator
PHP Code:
$validation service('validation'
Y en mis field de forms la uso asi

PHP Code:
if ($validation->hasError('meses'))
{
    echo 
$validation->getError('meses');


Espero te sirva. Saludos
Reply


Messages In This Thread
Validaciones Personalizadas - by ysanchez - 05-16-2021, 07:27 AM
RE: Validaciones Personalizadas - by Beewez - 06-04-2021, 05:29 AM
RE: Validaciones Personalizadas - by shadowmx - 06-10-2021, 10:01 AM



Theme © iAndrew 2016 - Forum software by © MyBB