Bonjour,

J'utilise une table de configuration inspiré de celle de Wordpress et Magento

Table ConfigData
Colonne 1 : ID (INT PRIMARY KEY AUTOINCREMENT)
Colonne 2 : path (VARCHAR 70)
Colonne 3 : value (TEXT)

Exemple de ligne :
1 ------ default_title ----- Le titre de mon site
2 ------ default_metadescription ----- La description de mon site
3 ------ offline ----- 1 ou 0
3 ------ offline_text ----- Ce site est hors ligne
etc...

J'aimerai pouvoir créer un formulaire unique pour pouvoir modifier toutes les lignes en un seul save().

Avez-vous une idée de comment je pourrais faire ça ?

Merci d'avance pour votre aide.

Amicalement,
Ilan

2 réponses


xtrembaker
Réponse acceptée

Bonjour,

Oui c'est tout à fait possible. Il faut que tu sélectionnes l'ensemble de tes données en base, puis, dans ta vue, que tu génères les inputs pour chaque entrée. Ex: dans ta vue (je te met du condensé)

<?php foreach($configs as $index => $config): ?>
   <?php echo $this->Form->input('Configdata.'.$index.'.id',array('value' => $config'Configdata']'id']));
   <?php echo $this->Form->input('Configdata.'.$index.'.path',array('value' => $config'Configdata']'path']));
   <?php echo $this->Form->input('Configdata.'.$index.'.value',array('value' => $config'Configdata']'value']));
<?php endforeach; ?>

Puis, une fois que tes modifications ont été effectuée, lorsque tu soumet le formulaire, tu fais la sauvegarde de l'ensemble de cette manière:

$this->Configdata->saveAll($this->request->data'Configdata']);

Happy Baking !

Ilan
Auteur

Merci beaucoup ;)