2010-10-15 20 views
1

Je veux faire un élément SELECT avec le résultat d'une requête, je présente dans la vue:avec la forme aide et liste

echo $this->Form->input('person_id'); 

Je veux que la valeur soit l'identifiant de la personne, et afficher les concaténation de prenom et nom, comme ceci:

<select id="ResearchGroupPersonId" name="data[ResearchGroup][person_id]"> 
    <option value="2">lastname2 firstname2</option> 
    <option value="1">lastname1 firstname1</option> 
</select> 

J'ai essayé est le contrôleur sans succès

$people = $this->ResearchGroup->Person->find('list', 
    array(
     'fields' => array('Person.id', 'CONCAT (Person.lastname, " ", Person.firstname) AS fullname'), 
     'order' => array('Person.lastname'), 
     ) 
    ); 

le l sql og montre que les lignes sont récupérées, elles ne sont pas affichées. Il fonctionne subjets la concaténation, ceci:

$people = $this->ResearchGroup->Person->find('list', 
    array(
     'fields' => array('Person.id', 'Person.lastname'), 
     'order' => array('Person.lastname'), 
     ) 
    ); 

donne cette

<select id="ResearchGroupPersonId" name="data[ResearchGroup][person_id]"> 
    <option value="2">Doe</option> 
    <option value="1">Ray</option> 
</select> 

Pourquoi?

Répondre

1

Pour CakePHP 1.3, il y a des champs virtuels dans le modèle. Check this link