Estaba tratando de validar mis datos de modelo de usuario y me encontré con este problema.¿Cómo usar solo ciertos conjuntos de validación para validar datos en Cake PHP?
decir que tengo las siguientes reglas de validación, almacenados en la variable $ validar:
var $validate=array(
"username" => array(
"usernameCheckForRegister" => array(
"rule" => ...,
"message" => ...
),
"usernameCheckForLogin" => array(
"rule" => ...,
"message" => ...
)
),
//rules for other fields
);
En el controlador UsersController, tengo dos acciones: Register() y login(). El problema es, ¿cómo validar el campo de nombre de usuario en la acción register() utilizando SOLAMENTE la regla usernameCheckForRegister, y cómo validar el campo de nombre de usuario en la acción de inicio de sesión(), usando la otra regla, usernameCheckForLogin? ¿Hay algún comportamiento o método en CakePHP que me permita elegir qué conjunto de reglas aplicar a un campo de formulario al validar?
Gracias de antemano por su ayuda!
Mis preguntas serían por qué te gustaría para validar el nombre de usuario al iniciar sesión? Al iniciar sesión, la única pregunta que debe responderse es "¿este nombre de usuario con esta contraseña existe en la base de datos?" No debería importar si el nombre de usuario es válido o no. Si no lo es, el inicio de sesión fallará porque el nombre de usuario no existe de todos modos. – deceze
La razón por la que quisiera validar el nombre de usuario al iniciar sesión es porque también estoy usando una validación del lado del cliente, que le indicará al usuario si dejó el campo de nombre de usuario vacío o no. – linkyndy
Lo sentimos, todavía no lo entiendo. :) Un mensaje genérico de "Información de inicio de sesión inválida" debería ser suficiente, posiblemente incluso mejor. Los ajustes de validación del modelo Cake son para garantizar que solo los datos validados se guarden en la base de datos. Sin embargo, cuando inicia sesión, no está guardando nada en la base de datos, por lo que no debe usar las reglas de validación. Si solo desea advertir al usuario sobre una entrada vacía, hágalo de forma directa sin utilizar las reglas de validación de modelos. – deceze