CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 04-09-2014 18:01:57

djone
Salambo
Date d'inscription: 18-05-2010
Messages: 30
Site web

Sauvegarde d'un tableau de données via un input

Bonjour à tous,

Je rencontre un soucis de sauvegarde de données en passant par un tableau crée via un input. Je m'explique :

Voici mon formulaire

Code: php

  1. <?php echo $this->Form->create('Fixture'); ?>
  2.   <fieldset>
  3.   <?php
  4.     for ($i=0; $i < 2; $i++) {
  5.       echo $this->Form->input('TeamH.'.$i.'.team_h_id');
  6.       echo $this->Form->input('TeamA.'.$i.'.team_a_id');
  7.       echo $this->Form->input('Division.'.$i.'.division_id');
  8.     }
  9.    
  10.   ?>
  11.   </fieldset>
  12. <?php echo $this->Form->end(__('Submit')); ?>

Il s'agit d'un formulaire permettant de créer un calendrier de matches par journée.

Lorsque que je valide le formulaire, mon debug m'affiche bien :

Code: php

  1.   'TeamH' => array(
  2.     (int) 0 => array(
  3.       'team_h_id' => '4'
  4.     ),
  5.     (int) 1 => array(
  6.       'team_h_id' => '4'
  7.     )
  8.   ),
  9.   'TeamA' => array(
  10.     (int) 0 => array(
  11.       'team_a_id' => '4'
  12.     ),
  13.     (int) 1 => array(
  14.       'team_a_id' => '4'
  15.     )
  16.   ),
  17.   'Division' => array(
  18.     (int) 0 => array(
  19.       'division_id' => '1'
  20.     ),
  21.     (int) 1 => array(
  22.       'division_id' => '1'
  23.     )
  24.   )
  25. )

Ne pas faire attention aux doublons, l'ID est un increment auto dans la base smile

Dans mon controleur, j'ai, en simplifiant :

Code: php

  1. for ($i=0; $i < 2; $i++) {
  2.         if ($this->Fixture->save($this->request->data)) {
  3.           $this->Session->setFlash(__('The fixture has been saved.'));
  4.           return $this->redirect(array('action' => 'index'));
  5.         } else {
  6.           $this->Session->setFlash(__('The fixture could not be saved. Please, try again.'));
  7.         }
  8.       }

Et bien, le save renvoie toujours false. Quelle étape aurai-je oublié?

Ne pas hésiter à faire compléter des points non précis
Merci beaucoup de votre aide wink


Djone

Hors ligne

 

#2 04-09-2014 18:27:08

systeo
Pièce Montée
Date d'inscription: 22-02-2013
Messages: 186

Re: Sauvegarde d'un tableau de données via un input

il me semble qu'il y a un grand flou!!

D'après le formulaire, vous devez avoir 3 modèles (TeamH, TeamA et Division). Donc l'enregistrement devrait être sur ces modèles.

C'est tout à fait normal qu'il n'enregistre pas "Fixture" puisqu'il n'y a aucun champs qui renvoie des données relatif à ce modèle dans votre HTML

Hors ligne

 

#3 05-09-2014 10:21:42

djone
Salambo
Date d'inscription: 18-05-2010
Messages: 30
Site web

Re: Sauvegarde d'un tableau de données via un input

Salut Systeo,
Effectivement, la table fixture a une relation HABTM avec Teams et une relation belongsTo avec Divisions.

Et en réfléchissant et grâce à ta remarque pertinente smile, je vais développer différemment l'alimentation de la table fixtures. Je vais revoir mon modèle de données également, mais il y a tellement de relations entre les tables qu'il faut penser à tout...

Après si d'autres remarques te viennent à l'esprit, ne pas hésiter.

Merci beaucoup d'avoir pris le temps de me répondre

Dernière modification par djone (05-09-2014 10:22:52)


Djone

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr