Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/09/2011, 11h14   #1
Invité de passage
 
Inscription : février 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 15
Points : 2
Points : 2
Par défaut Pourquoi un Doctrine_Collection (actions) se transforme en sfOutputEscaperIteratorDecorator (templates) ?

Bonjour,
Je viens de me rendre compte d'un comportement de symfony, et je voulais savoir d'où cela venait...
Si dans une action je récupère un objet Doctrine_collection depuis une requête :
Code :
$this->objets = Doctrine::getTable('myObjet')->method_requete()
Quand je récupère cet objet dans mon template, le Doctrine_Collection s'est transformé en sfOutputEscaperIteratorDecorator

Ce qui fait que si je veux faire un truc du genre :
Code :
1
2
3
4
5
6
7
8
 
public function maMethode(myObjet $objet)
{}
 
foreach($objets as $objet)
{
  $var = $sf_user->maMethode($objet)
}
ça plante car $objet est de type sfOutputEscaperIteratorDecorator...

Si je fais
Code :
1
2
3
4
foreach($objets as $index => $Event)
{
    $monObjet = $objets->getRaw($index));
}
$monObjet est bien de type myObjet
Mais dès que je repasse $monObjet à un autre template, boum, il redevient de type sfOutputEscaperIteratorDecorator

Je m'y prends mal ou c'est vraiment bizarre ?

Merci d'avance
jujuvolley est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 12h24   #2
Futur Membre du Club
 
Inscription : juillet 2010
Messages : 18
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 18
Points : 18
Points : 18
C'est une question de sécurité, les caractères spéciaux sont échappés etc.

tu peux désactiver totalement dans settings.yml avec

Code :
escaping_strategy  false
ou alors dans ton template

Code :
$myvar = sfOutputEscaper::unescape($myvar);
thomas974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 12h29   #3
Invité de passage
 
Inscription : février 2007
Messages : 15
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 15
Points : 2
Points : 2
Merci thomas974 ;-)

Si c'est une raison de sécurité, je suppose qu'il vaut mieux que je me débrouille en laissant comme ça.
Je vais modifier mes méthodes pour qu'elles acceptent l'identifiant de l'objet plutôt que l'objet complet vu que dans mon cas, je peux.

Si je suis vraiment embêté je saurai comment faire.

Merci encore !
jujuvolley est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h26.


 
 
 
 
Partenaires

Hébergement Web