2010-05-19 9 views
1

Je souhaite ajouter un nouvel utilisateur à la base de données, et le faire en remplissant un formulaire et en le soumettant. Tout semble fonctionner correctement. Juste avant mon appel save() dans le contrôleur je retourne toutes les données et toutes les données nécessaires sont là. Il est valide (ated), car aucune erreur n'est renvoyée.Le contrôleur CakePHP 1.3 save() ne sauvegarde pas les données

Mais alors rien ne se passe. Je suis retourné à mon formulaire sans qu'aucune erreur ne soit affichée. Ceci est mon « sauver en ligne »:

if($this->Registratie->save($this->data)) { 

Je ne suis pas en utilisant toutes les méthodes beforeSave().

Utilisation debug($this->validationErrors); montre:

app/controllers/registratie_controller.php (line 45) 

Quelle est la ligne de code ci-dessus.

J'ai parcouru mon code encore et encore. Quel pourrait être le problème?

+0

Quelle est la sortie de 'var_dump ($ this-> Registratie-> save ($ this-> data));'? – Mike

+0

Vous * renvoyez * les données? Je crois que vous le jetez plutôt, parce que le retour casserait le flux de contrôle. – zefciu

+0

Quel est le format de votre tableau de données $ this->? Les clés de ce tableau ne correspondent pas, elles ne sont pas sauvegardées et ne génèrent pas d'erreur – Jonathan

Répondre

1

Lorsque vous créez un formulaire en utilisant l'FormHelper il va générer des noms d'entrée comme:

<input type='text' name='data[Registratie][first_name]'> 

Une fois le formulaire gâteau soumis poussera que dans le tableau $ this-> données avec un indice de « Registratie »

Vous avez probablement besoin de passer l'indice au modèle lors de l'enregistrement

if ($this->Registratie->save($this->data['Registratie'])) { 

Je voudrais aussi faire un var_dump ($ this-> data) ou print_r ($ this-> data) pour vous assurer que vos champs de formulaire arrivent.

1

J'ai eu le même problème, corrigé en faisant exactement ce que dit Jack B Nimble. Utilisation de CakePHP 1.3

Exemples:

Modèle: Contacts

$this->data['contact']