<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Commentaires sur : Internationalisation et formulaire avec Symfony</title>
	<atom:link href="http://www.lexik.fr/blog/symfony/symfony/12x/internationalisation-et-formulaire-399/feed" rel="self" type="application/rss+xml" />
	<link>http://www.lexik.fr/blog/symfony/symfony/12x/internationalisation-et-formulaire-399</link>
	<description>Blog sur le développement Web PHP</description>
	<lastBuildDate>Fri, 10 Sep 2010 15:22:16 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>Par : CedCannes</title>
		<link>http://www.lexik.fr/blog/symfony/symfony/12x/internationalisation-et-formulaire-399/comment-page-1#comment-2555</link>
		<dc:creator>CedCannes</dc:creator>
		<pubDate>Wed, 17 Jun 2009 09:21:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.lexik.fr/sfblog/?p=399#comment-2555</guid>
		<description>Sympa, mais en modifiant le constructeur de mon formulaire de la sorte je ne peux plus lui passer mon objet à modifier puisque c&#039;est la langue qui est attendue en paramètre.

La doc donne la solution 
&lt;code&gt;
class articleActions extends sfActions
{
  public function executeCreate($request)
  {
    $this-&gt;form = new ArticleForm(null, array(&#039;culture&#039; =&gt; $this-&gt;getUser()-&gt;getCulture()));
 
    if ($request-&gt;isMethod(&#039;post&#039;) &amp;&amp; $this-&gt;form-&gt;bindAndSave($request-&gt;getParameter(&#039;article&#039;)))
    {
      $this-&gt;redirect(&#039;article/created&#039;);
    }
  }
}
&lt;/code&gt;
et
&lt;code&gt;
class ArticleForm extends BaseArticleForm
{
  public function configure()
  {
    $this-&gt;embedI18n(array($this-&gt;getCurrentCulture()));
  }
 
  public function getCurrentCulture()
  {
    return isset($this-&gt;options[&#039;culture&#039;]) ? $this-&gt;options[&#039;culture&#039;] : &#039;en&#039;;
  }
}
&lt;/code&gt;Sympa, mais en modifiant le constructeur de mon formulaire de la sorte je ne peux plus lui passer mon objet à modifier puisque c&#039;est la langue qui est attendue en paramètre.

La doc donne la solution 
&lt;code&gt;
class articleActions extends sfActions
{
  public function executeCreate($request)
  {
    $this-&gt;form = new ArticleForm(null, array(&#039;culture&#039; =&gt; $this-&gt;getUser()-&gt;getCulture()));
 
    if ($request-&gt;isMethod(&#039;post&#039;) &amp;&amp; $this-&gt;form-&gt;bindAndSave($request-&gt;getParameter(&#039;article&#039;)))
    {
      $this-&gt;redirect(&#039;article/created&#039;);
    }
  }
}
&lt;/code&gt;
et
&lt;code&gt;
class ArticleForm extends BaseArticleForm
{
  public function configure()
  {
    $this-&gt;embedI18n(array($this-&gt;getCurrentCulture()));
  }
 
  public function getCurrentCulture()
  {
    return isset($this-&gt;options[&#039;culture&#039;]) ? $this-&gt;options[&#039;culture&#039;] : &#039;en&#039;;
  }
}
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>Sympa, mais en modifiant le constructeur de mon formulaire de la sorte je ne peux plus lui passer mon objet à modifier puisque c&#8217;est la langue qui est attendue en paramètre.</p>
<p>La doc donne la solution<br />
<code><br />
class articleActions extends sfActions<br />
{<br />
  public function executeCreate($request)<br />
  {<br />
    $this->form = new ArticleForm(null, array('culture' => $this->getUser()->getCulture()));</p>
<p>    if ($request->isMethod('post') &#038;&#038; $this->form->bindAndSave($request->getParameter('article')))<br />
    {<br />
      $this->redirect('article/created');<br />
    }<br />
  }<br />
}<br />
</code><br />
et<br />
<code><br />
class ArticleForm extends BaseArticleForm<br />
{<br />
  public function configure()<br />
  {<br />
    $this->embedI18n(array($this->getCurrentCulture()));<br />
  }</p>
<p>  public function getCurrentCulture()<br />
  {<br />
    return isset($this->options['culture']) ? $this->options['culture'] : 'en';<br />
  }<br />
}<br />
</code>Sympa, mais en modifiant le constructeur de mon formulaire de la sorte je ne peux plus lui passer mon objet à modifier puisque c&#8217;est la langue qui est attendue en paramètre.</p>
<p>La doc donne la solution<br />
<code><br />
class articleActions extends sfActions<br />
{<br />
  public function executeCreate($request)<br />
  {<br />
    $this->form = new ArticleForm(null, array('culture' => $this->getUser()->getCulture()));</p>
<p>    if ($request->isMethod('post') &#038;&#038; $this->form->bindAndSave($request->getParameter('article')))<br />
    {<br />
      $this->redirect('article/created');<br />
    }<br />
  }<br />
}<br />
</code><br />
et<br />
<code><br />
class ArticleForm extends BaseArticleForm<br />
{<br />
  public function configure()<br />
  {<br />
    $this->embedI18n(array($this->getCurrentCulture()));<br />
  }</p>
<p>  public function getCurrentCulture()<br />
  {<br />
    return isset($this->options['culture']) ? $this->options['culture'] : 'en';<br />
  }<br />
}<br />
</code></p>
]]></content:encoded>
	</item>
</channel>
</rss>
