2009-05-19 5 views
0

Je développe un site utilisant le framework CakePHP. J'ai un formulaire qui montre une liste d'entités, avec une case à cocher pour chacune d'elles permettant de le sélectionner. Vous appuyez ensuite sur un bouton au bas du formulaire en disant "Modifier sélectionné".Gestion de plusieurs valeurs d'URL dans CakePHP

Mon approche habituelle consiste à donner le même nom à chaque case à cocher (par exemple, row_id) et d'utiliser l'ID principal en tant que value de l'entrée. Cependant, lorsque vous soumettez le formulaire, CakePHP semble seulement retourner un des valeurs de la case à cocher au contrôleur dans $this->params['url'], plutôt que n'importe quel genre de liste comme je l'attendrais.

Des conseils sur la bonne façon de gérer cela, afin que je puisse savoir quelles lignes ont été cochées?

Répondre

1

Si vous utilisez le FormHelper, la meilleure façon est de créer vos champs comme ceci:

echo $form->input('ModelName.0.row_id', /* snip */) 
echo $form->input('ModelName.1.row_id', /* snip */) 

Etc .. vous obtenez le point. Si c'est une liste dynamique, il y a toujours la boucle for.

Lorsque le formulaire est affiché, cela devrait vous donner un tableau de côté serveur comme celui-ci ($ this-> données):

array 
(
    ['ModelName'] => array 
    (
     [0] => array 
     (
      [row_id] => value 
     ), 
     [1] => array 
     (
      [row_id] => value 
     ) 
    ) 
) 

Ensuite, vous pouvez utiliser la Set classe utilitaire pour extraire vos ID (et le désordre avec vos données :))

Questions connexes