L’autocomplétion dans Symfony (suite et fin)

Ce (court) billet vient compléter mon petit tutoriel sur l’utilisation du sfWidgetFormJQueryAutocompleter dans Symfony. Cette fois, j’explique comment se servir du paramètre « value_callback » qui permet de formater la valeur du widget avant de l’afficher à l’utilisateur.

Je ne vais pas recopier l’intégralité du code de l’ancien article que vous pouvez de toute façon retrouver ici, là je mets simplement ce qui est ajouté.

La classe du formulaire :

    $this->widgetSchema['user_id'] = new sfWidgetFormJQueryAutocompleter(array(
        'url'             => url_for('@autocomplete_user'),
        'config'          => '{scrollHeight: 200, minChars: 1, delay: 350}',
        'value_callback'  => array('User', 'getUsernameFromId')
    ));

Le callback a besoin du nom de la classe et de sa méthode qui va être appelée. Il reste à définir cette méthode (statique) comme ci-dessous :

La classe du modèle :

  public static function getUsernameFromId($id)
  {
    $result = Doctrine::getTable('User')->find($id);
    return $result ? $result->getUsername() : null;
  }

Et voilà le tour est joué ! Dans cet exemple, c’est bien le nom du membre qui sera affiché après validation du formulaire au lieu de son identifiant ce qui est quand même un peu plus « user-friendly »

Laisser un commentaire

Vous pouvez ces balises HTML dans votre commentaire :
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current month ye@r day *