Valider le champ dans le modèle sans table (CakePHP)
Question
J'ai un modèle dans CakePHP qui n'a pas de table, appelé Upload. J'ai une validation dans ce modèle pour un champ appelé source_id.
J'ai un formulaire qui construit de jolies $ this-data en me donnant un ensemble bien formulé, y compris:
$this->data['Upload']['source_id']
Cependant, la règle de validation que j'ai définie ne semble pas fonctionner du tout. J'ai copié cette règle de validation à partir d'un autre modèle où cela fonctionne. Je suis donc sûr que cela fonctionne:
var $validate = array(
'source_id' => array(
rule' => 'numeric',
'required' => true,
'allowEmpty' => false,
'message' => 'Error!.'
)
);
Ne pouvez-vous pas valider les champs d'un modèle dépourvu de table de base de données?
Le formulaire utilise le modèle de téléchargement et est soumis à une autre méthode d'action du contrôleur.
CakePHP 1.2, PHP / MySQL 5, XAMPP.
La solution
Je suis bête. Vous devez déclencher une vérification de validation, soit avec une sauvegarde () ou
$this->Upload->set($this->data);
$this->Upload->validates();
Travailler maintenant.
Autres conseils
Vous pouvez également simuler la structure de la base de données en définissant le tableau $ _schema, comme suit:
var $useTable = false;
var Vous pouvez également simuler la structure de la base de données en définissant le tableau $ _schema, comme suit:
<*>schema = array(
'name' =>array('type'=>'string', 'length'=>100),
'email' =>array('type'=>'string', 'length'=>255),
'phone' =>array('type'=>'string', 'length'=>20),
'subject' =>array('type'=>'string', 'length'=>255),
'message' =>array('type'=>'text')
);