Autocompletion symfony et l'enregistrement en BD
Bonjour,pour travailler avec autocompletion dans mon formulaire je me suis basé sur le lien suivant ici,tout marche très bien pour l'autocompletion mais le contraire pour l'enregistrement du choix à la base de donnée puisque il enregistre le ID au lieu du mot cherché :
mon formulaire :
Code:
1 2 3 4 5 6 7 8 9 10
|
$projet= new sfWidgetFormDoctrineJQueryAutocompleter(array(
'url' => 'ajaxprojet.html',
'model' => 'Project',
'method_for_query'=>''
));
$this->setWidget('projet', $projet); |
mon action :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public function executeAjax(sfWebRequest $request)
{
$this->getResponse()->setContentType('application/json');
$choices = array();
foreach($projects= Doctrine::getTable('projects')->getProfilAutocompletion($request->getParameter('q'), $request->getParameter('limit'))->getData() as $p)
{
$choices[$p->id_projet] = $p->projet;
}
if($projects != array())
{
return $this->renderText(json_encode($choices));
}
} |
puis dand mon table :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public function getProfilAutocompletion($q, $limit){
$dq = Doctrine_Query::create()
->select("p.id_projet, p.projet")
->from("Projects p")
->where("p.projet LIKE ?","%".$q."%")
->limit($limit)
->orderBy('p.projet ASC');
return $dq->execute();
} |
et dans mon vue :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<tr>
<th>
Projet :
</th>
<td>
<?php echo $form['projet']->render(array('class' => ($form['projet']->renderError()) ? 'inp-form-error' : 'inp-form')); ?>
</td>
<td>
<?php if ($form['projet']->renderError()): ?>
<div class="error-left"></div>
<div class="error-inner"><?php echo $form['projet']->renderError(); ?></div>
<?php endif; ?>
</td>
</tr> |
Alors à la table "projects" il me retourne "id_projet" au champ "pojet"...,je pense que le problème vient de "method_for_query"(en roug en code)!!
Une idée??