bonjour,

j'ai une action d'ajout d'attribut qui fonctionne, je souhaite suite à l'enregistrement afficher tous les attribut liés à une photo.

voici mon code dans le fichier action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   //Ajoute un attribut a un fichier
  public function executeAddattributsfichier(sfWebRequest $request)
  {
  	//Si pas une appelée par autre chose qu'une requête Ajax alors on renvoi erreur 404
	$this->forward404Unless($request->isXmlHttpRequest());
 
	$idfichier = $request->getParameter('fichier_id');
 
	//Enregistre attribut fichier
	$attribut = new Fichierattribut();
	$attribut->fichier_id = $request->getParameter('fichier_id');
	$attribut->intitule = $request->getParameter('attribut');
	$attribut->valeur = $request->getParameter('value');
	$attribut->save();
 
	//Renvoi les attributs pour MAJ de l'affichage
	$this->fichierattributs = Doctrine::getTable('fichierattribut')
	  ->createQuery('a')
	  ->where('fichier_id = ?',$idfichier)
	  ->execute();
 
	$this->setTemplate('infosfichier');
  }
Seulement, cela m'affiche autant de fois le template que d'attribut présent pour la photo. Si j'ai 10 atrtibut pour ma photo, il me réaffiche à suivre 10 fois le template.

J'ai pourtant le code ci-dessous qui fonctionne bien pour la suppression d'un attribut.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
  public function executeDeleteattributsfichier(sfWebRequest $request)
  {
	//Si pas une appelée par autre chose qu'une requête Ajax alors on renvoi erreur 404
	$this->forward404Unless($request->isXmlHttpRequest());
 
	$idfichier = $request->getParameter('id');
	$nomattribut = $request->getParameter('name');
 
	$delete = Doctrine::getTable('fichierattribut')
				->createQuery('a')
				->where('fichier_id = ?',$idfichier)
				->andWhere('intitule = ?',$nomattribut)
				->execute();
 
	$delete = $delete->getFirst();
 
	$delete->delete();
 
	//Renvoi les attributs pour MAJ de l'affichage
	$this->fichierattributs = Doctrine::getTable('fichierattribut')
	  ->createQuery('a')
	  ->where('fichier_id = ?',$idfichier)
	  ->execute();
 
	$this->setTemplate('infosfichier');
  }
si quelqu'un peut m'indiquer pourquoi cela se dupplique.