2011-04-15 4 views
0

J'ai Tarifs, chaque tarif hasManyPrice et Price également belongsToUserGroup. Donc, fondamentalement, les prix changent lorsque le groupe de l'utilisateur est modifié - cela n'a pas beaucoup d'importance.CakePHP boîte de sélection avec récursif 2

La vue ressemble à ce

<?php echo $this->Form->create('Tarif');?> 
    ... 
     $i=0; 
     foreach ($this->data['Price'] as $price) { 

      echo "<tr><td>".$this->Form->input("Price.$i.price", array('label' => false))."</td>"; 
      echo "<td>".$this->Form->input("Price.$i.currency", array('label' => false))."</td>"; 
      echo "<td>".$this->Form->input("Price.$i.UserGroup.id", array('label' => false))."</td>"; 
    ...  

Et je dois l'entrée UserGroup.id pour afficher une sélection où chaque option affiche le nom du groupe et a son id en tant que valeur. Les valeurs user_group_id sont correctes, mais elles sont affichées dans une entrée de texte. J'ai essayé $this->Form->select et $this->Form->input(...,'type'=>'select') mais tous les deux ont fourni des boîtes de choix sans options. Comment définir l'entrée pour faire ce que je veux? Merci

+0

pouvez-vous ajouter pr ($ price); et montrez-nous l'un de vos tableaux? Vous avez raison avec $ this-> form-> input (array ('type' => 'select', 'option' => $ price ['UserGroup'] ['nom'])); Note: ceci est une réponse aveugle. –

Répondre

1

Dans votre contrôleur, vous devez ajouter:

$user_groups = $this->UserGroup->find('list'); 
$this->set(compact('user_groups'); 

Puis dans la vue, vous configurez le menu déroulant comme:

<?php echo $this->Form->input('user_group', array('options' => $user_groups)); ?> 

Vous pouvez ensuite ajouter user_groups $ en option à toute forme-> entrée et il deviendra une liste déroulante lors de l'utilisation:

array('options' => $user_groups) 
+0

C'est exactement ce dont j'avais besoin, merci;) – Elwhis

Questions connexes