2008-10-15 3 views
3

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.Valider le champ dans le modèle sans table (CakePHP)

J'ai une forme qui construit une belle recherche $ this-données, en me donnant un ensemble bien formated, dont:

$this->data['Upload']['source_id'] 

Toutefois, la règle de validation que j'ai mis ne semble pas fonctionner du tout. Je copiais cette règle de validation d'un autre modèle où il fonctionne, donc je suis sûr que cela fonctionne:

var $validate = array(
     'source_id' => array(
     rule' => 'numeric', 
     'required' => true, 
     'allowEmpty' => false, 
     'message' => 'Error!.' 
    ) 
); 

Pouvez-vous pas valider les champs pour un modèle qui ne dispose pas d'une 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.

Répondre

10

Je suis bête. Vous devez déclencher un contrôle de validation, soit avec une sauvegarde() ou

$this->Upload->set($this->data); 
$this->Upload->validates(); 

travail maintenant.

4

Vous pouvez également faux la structure de base de données en définissant le tableau de _schema de $, comme suit:

var $useTable = false; 

var $_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') 
); 
+0

+1 Je ne fonctionnalité très pas remarqué – kaklon