Saludos a todos, soy nuevo en la programacion en general y estoy comenzando en codeigniter 4, mi problema es que ha la hora de realizar validaciones personalizadas no logro que el campo me valide, el codigo explota por completo y me dice que no es correcta la validacion, en la documentacion explica como hacerlo y trato de realizarlo pero no lo consigo, a continuacion les dejo el ejemplo:
tengo un campo en la vista que se llama mes y quiero validar que a la hora de llenar este campo se registre un numero del 1 al 12, en el controlador he realizado esto:
public function reglaM($mes,&$error = null){
if((int)$mes<1 && (int)$mes>12){
$error=lang('reglaMeses');
return false;
}
return true;
}
y este es el error que me da (reglaM no es una regla de validación válida)
Code:
use CodeIgniter\Exceptions\ExceptionInterface;
4 use CodeIgniter\Exceptions\FrameworkException;
5
6 class ValidationException extends FrameworkException implements ExceptionInterface
7 {
8 public static function forRuleNotFound(string $rule = null)
9 {
10 return new static(lang('Validation.ruleNotFound', [$rule]));
11 }
12
13 public static function forGroupNotFound(string $group = null)
14 {
15 return new static(lang('Validation.groupNotFound', [$group]));
16 }
tambien lo realizo como explica la documentacion, yo creo un carpeta en app\Validacion y dentro un archivo que se llama MiVal.php, en este archivo porgo lo siguiente:
<?php
namespace App\Validacion;
class Myregla{
public function reglaMeses($mes,&$error = null){
if((int)$mes<1 && (int)$mes>12){
$error=lang('reglaMeses');
return false;
}
return true;
}
}
?>
en el archivo app\Validation.php dentro de:
public $ruleSets = [
\CodeIgniter\Validation\Rules::class,
\CodeIgniter\Validation\FormatRules::class,
\CodeIgniter\Validation\FileRules::class,
\CodeIgniter\Validation\CreditCardRules::class,
\App\Validacion\Myregla::class,
];
y en el controlador en las reglas del campo mes: 'meses'=>['label'=>'(Cantidad de Meses Atrasados)','rules'=>'required|numeric|reglaMeses'],
y tampoco me lo reconoce codeigniter 4 ya no se que mas hacer, necesito su ayuda. gracias