setTemplate après insertion
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:
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:
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.