Internationalisation et formulaire avec Symfony


Samuel Breton
Internationalisation et formulaire avec...

Aujourd’hui on va traiter des formulaires et de l’internationalisation. Une des grandes fierté de Symfony 1.2 est l’internationalisation et les formulaires.  Vous avez  eu droit à leur chapitre dans les jobeet. En revanche lorsque l’on veut  coupler les deux, les choses se compliquent un peu et c’est bien là l’intérêt de notre métier. Le but de cet article n’étant pas d’expliquer une nouvelle fois le fonctionnement des formulaires ou de l’I18N, vous comprendrez que je survole certains points. Je vous renverrez simplement ici pour les formulaires et ici pour l’I18N .

(suite…)

Show Comments (1)

Comments

  • CedCannes

    Sympa, mais en modifiant le constructeur de mon formulaire de la sorte je ne peux plus lui passer mon objet à modifier puisque c’est la langue qui est attendue en paramètre.

    La doc donne la solution

    class articleActions extends sfActions
    {
    public function executeCreate($request)
    {
    $this->form = new ArticleForm(null, array('culture' => $this->getUser()->getCulture()));

    if ($request->isMethod('post') && $this->form->bindAndSave($request->getParameter('article')))
    {
    $this->redirect('article/created');
    }
    }
    }

    et

    class ArticleForm extends BaseArticleForm
    {
    public function configure()
    {
    $this->embedI18n(array($this->getCurrentCulture()));
    }

    public function getCurrentCulture()
    {
    return isset($this->options['culture']) ? $this->options['culture'] : 'en';
    }
    }
    Sympa, mais en modifiant le constructeur de mon formulaire de la sorte je ne peux plus lui passer mon objet à modifier puisque c’est la langue qui est attendue en paramètre.

    La doc donne la solution

    class articleActions extends sfActions
    {
    public function executeCreate($request)
    {
    $this->form = new ArticleForm(null, array('culture' => $this->getUser()->getCulture()));

    if ($request->isMethod('post') && $this->form->bindAndSave($request->getParameter('article')))
    {
    $this->redirect('article/created');
    }
    }
    }

    et

    class ArticleForm extends BaseArticleForm
    {
    public function configure()
    {
    $this->embedI18n(array($this->getCurrentCulture()));
    }

    public function getCurrentCulture()
    {
    return isset($this->options['culture']) ? $this->options['culture'] : 'en';
    }
    }

    • Article Author

Recevez nos articles