Précédent   Forum du club des développeurs et IT Pro > PHP > Bibliothèques et frameworks > symfony1
symfony1 Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/11/2012, 17h43   #1
gabknight
Invité de passage
 
Inscription : octobre 2012
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2012
Messages : 2
Points : 1
Points : 1
Par défaut Reptation de formulaire

Bonjour,

J'ai un soucis sur symfony 2.1, je dois répéter un formulaire un certain nombre de fois le souci est que le "name" et le "id" de mes textarea se répète. Donc lors de la sauvegarde n'est sauvegarder et propager aux autre form uniquement la valeur du dernier.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 
 
//Dans mon controller
$form_html = array();
$entity_collection = array();
$render_site_text = array();
foreach ($site_info_ret as $tmp_lang => $tmp_site_info)
{
	if($tmp_lang=='en')
	{
		$temp_form = array();
		$temp_render = array();
		$entity_html = array();
		foreach ($tmp_site_info as $tmp_site_text)
		{
			$tmp = $this->container->get('form.factory')->create(new HtmlContentForm(), $tmp_site_text->getHtmlContent());
			$temp_form[$tmp_site_text->getSiteInfoType()->getId()] = $tmp;
			$temp_render[$tmp_site_text->getSiteInfoType()->getId()] = $temp_form[$tmp_site_text->getSiteInfoType()->getId()]->createView();
			$entity_html[$tmp_site_text->getSiteInfoType()->getId()] = $tmp_site_text->getHtmlContent();
 
		}
		$form_html[$tmp_lang]=$temp_form;
		$render_site_text[$tmp_lang]=$temp_render;
		$entity_collection[$tmp_lang] = $entity_html;
	}
}
 
$form = $this->container->get('form.factory')->create(new SiteForm(), $site);
 
$request = $this->container->get('request');
 
if ($request->getMethod() == 'POST') 
{
	$form->bindRequest($request);
 
	if ($form->isValid())
	{
		$em->persist($site);
		$em->flush();
		if (isset($site_id)) 
		{
			$message='Site modifié avec succès !';
		}
		else 
		{
			$message='Site ajouté avec succès !';
		}
	}
	foreach ($form_html as $tmp_lang=>$lang_form_html)
	{
		foreach ($lang_form_html as $tmp_type=>$html)
		{
			$html->bindRequest($request);
			if ($html->isValid())
			{
				$em->persist($entity_collection[$tmp_lang][$tmp_type]);
				$em->flush();
				if (isset($site_id))
				{
					$message='Site modifié avec succès !';
				}
				else
				{
					$message='Site ajouté avec succès !';
				}
			}
		}
	}
}
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
//Dans mon form
 
class SiteForm extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {        
        $builder
            ->add('site_name');
    }
 
    public function getName()
    {
        return 'site';
    }    
}

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
//Dans mon twig
<form action="" method="post" {{ form_enctype(form) }}>
    {{ form_widget(form) }}
    {% for lang, forms in form_html %}
    	{% for type, form in forms %}
   			{{ form_label(form.content, lang ~ ' ' ~ type ) }}
    		{{ form_widget(form) }}
    	{% endfor %}
    {% endfor %}
    <input type="submit" />
</form>
Je commence à être à court d'idée.

Bonne journée.


EDIT:

J'ai résolu mon soucis en utilisant le System de collection de symfony pour ceux qui tombent sur le même problème voici l'explication nécessaire:
http://symfony.com/doc/2.0/cookbook/...llections.html
gabknight est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h43.


 
 
 
 
Partenaires

Hébergement Web