Et bas passe un paramètre hydateMode a ta méthode que tu passe a ton execute.
Le 2 décembre 2010 16:49, manuel brossard <[email protected]> a écrit : > J' ai déja une fonction getEvaluationbycustomer() qui fait la requête.. > > > > Le 2 décembre 2010 16:44, Jérémy LEHERPEUR <[email protected]> a écrit > : > >> le execute n'est disponible que sur Doctrine_Query. >> >> $evaluations = *Doctrine*::getTable('Evaluation') ->*createQuery*('e') >> ->select('e.champ1, e.champ2') ->where('e.customer_id = ?', 2)- >> >execute(array(),Doctrine::HYDRATE_ARRAY); >> >> >> Remplace champ1, champ2 par ce que tu a besoin. >> >> C'est mieux ? >> >> Le 2 décembre 2010 16:34, manuel brossard <[email protected]> a écrit >> : >> >>> Oui sympa mais c' est pas cela qui pose pb simplement la création du >>> fichier depuis ma collection. >>> >>> $evaluations = >>> Doctrine::getTable('Evaluation')->getEvaluationbycustomer(2)->execute(array(),Doctrine::HYDRATE_ARRAY); >>> >>> *fatal error*: Call to undefined method Doctrine_Collection::execute() >>> in * >>> /usr/share/php/symfony/data/web/p18i/apps/backend/modules/consultant/actions/actions.class.php >>> * on line *246* >>> >>> >>> >>> Le 2 décembre 2010 16:32, Lélio ML <[email protected]> a écrit : >>> >>> À la fin de ta action, tu forces les header. >>>> Allez, je suis sympa. Voici ceux que j'utilise quand je veux forcer le >>>> téléchargement ;) >>>> >>>> $this->getResponse()->clearHttpHeaders(); >>>> $this->getResponse()->setHttpHeader('Pragma', 'public', true); >>>> $this->getResponse()->setHttpHeader('Cache-Control', 'no-store, >>>> no-cache, must-revalidate'); >>>> $this->getResponse()->setHttpHeader('Expires', '0'); >>>> $this->getResponse()->setHttpHeader('Content-Type', >>>> 'application/octet-stream'); >>>> $this->getResponse()->setHttpHeader('Content-Disposition', >>>> sprintf('%s; >>>> filename="%s"', 'attachment', $filename)); >>>> $this->getResponse()->setHttpHeader('Content-Transfer-Encoding', >>>> 'binary'); >>>> $this->getResponse()->sendHttpHeaders(); >>>> >>>> -----Message d'origine----- >>>> De : [email protected] [mailto:[email protected]] >>>> De la >>>> part de manuel brossard >>>> Envoyé : jeudi 2 décembre 2010 16:23 >>>> À : [email protected] >>>> Objet : Re: [symfony-fr] export csv collection -> array >>>> >>>> Oui j' y avais pensé mais c' est pas ce qui est démandé, le client veut >>>> un >>>> vrai export, le fichier est généré et téléchargé par le browser. >>>> >>>> J' ai la fin (mon fichier est vide) mais pas le début car j' ai un >>>> soucis >>>> avec le type des données récupéré. La fonction fputcsv attends un array >>>> en >>>> second paramètre et moi j' ai une collection . >>>> >>>> >>>> >>>> >>>> Le 2 décembre 2010 14:52, Lélio ML <[email protected]> a écrit : >>>> >>>> >>>> Le mieux est de passer par les templates. >>>> Tu fais la même chose de d'habitude sauf que ton template afiche >>>> les >>>> champs >>>> avec ton séparateur. >>>> Le template pourra être nommé >>>> exportationEvaluationSuccess.csv.php >>>> si tu >>>> mets dans ta route le paramètre sf_format >>>> >>>> Ainsi il te sera facile par la suite d'exporter en xls ou xml par >>>> exemple >>>> rien qu'en modifiant le sf_format de la route : une seule action >>>> et >>>> autant >>>> de templates que d'exports possibles >>>> >>>> /evaluation/export.csv => exportationEvaluationSuccess.csv.php >>>> /evaluation/export.xml => exportationEvaluationSuccess.xml.php >>>> >>>> par exemple. >>>> >>>> -----Message d'origine----- >>>> De : [email protected] >>>> [mailto:[email protected]] De la >>>> part de mantex >>>> Envoyé : jeudi 2 décembre 2010 14:48 >>>> À : Symfony-fr >>>> Objet : [symfony-fr] export csv collection -> array >>>> >>>> >>>> J' essai de récupérer une collection d' enregistrements en csv. >>>> >>>> cela fonctionne avec un tableau de tableau rempli manuellement >>>> mais >>>> poas >>>> lorsque j' essai de recupérer la collection "evaluations" >>>> >>>> Voici ma fonction.. >>>> >>>> >>>> public function executeExportationEvaluation (sfWebRequest >>>> $request) >>>> >>>> { >>>> >>>> $this->id = $request->getParameter('id'); >>>> $evaluations = Doctrine_Core::getTable('Evaluation')- >>>> >getEvaluationbycustomer(2); >>>> >>>> $fp = >>>> fopen('/usr/share/php/symfony/data/web/monprojet/web/uploads/ >>>> file.csv', 'w'); >>>> >>>> foreach ($evaluations as $fields) { >>>> fputcsv($fp, $fields); >>>> } >>>> >>>> fclose($fp); >>>> >>>> $fichier = >>>> '/usr/share/php/symfony/data/web/monprojet/web/uploads/ >>>> file.csv'; >>>> header('Content-Type: application/csv;name='.$fichier); >>>> header('Content-Disposition: attachment;filename='.$fichier); >>>> >>>> >>>> readfile($fichier); >>>> return sfView::HEADER_ONLY; >>>> >>>> >>>> } >>>> >>>> -- >>>> Vous recevez ce message, car vous êtes abonné au groupe Google >>>> Groupes Symfony-fr. >>>> Pour envoyer un message à ce groupe, adressez un e-mail >>>> à [email protected]. >>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>> >>>> [email protected]<symfony-fr%[email protected]> >>>> <mailto:symfony-fr%[email protected]<symfony-fr%[email protected]>> >>>> . >>>> Pour plus d'options, consultez la page de ce groupe : >>>> http://groups.google.com/group/symfony-fr?hl=fr >>>> >>>> >>>> -- >>>> Vous recevez ce message, car vous êtes abonné au groupe Google >>>> Groupes Symfony-fr. >>>> Pour envoyer un message à ce groupe, adressez un e-mail à >>>> [email protected]. >>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>> [email protected]<symfony-fr%[email protected]> >>>> <mailto:symfony-fr%[email protected]<symfony-fr%[email protected]>> >>>> . >>>> Pour plus d'options, consultez la page de ce groupe : >>>> http://groups.google.com/group/symfony-fr?hl=fr >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Cordialement, >>>> >>>> Manuel Brossard >>>> Twitter: twitter.com/infonel >>>> Skype : mantex2039 >>>> >>>> Tel: + 33 9 72 17 00 41 >>>> >>>> >>>> >>>> -- >>>> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes >>>> Symfony-fr. >>>> Pour envoyer un message à ce groupe, adressez un e-mail à >>>> [email protected]. >>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>> [email protected]<symfony-fr%[email protected]> >>>> . >>>> Pour plus d'options, consultez la page de ce groupe : >>>> http://groups.google.com/group/symfony-fr?hl=fr >>>> >>>> >>>> -- >>>> Vous recevez ce message, car vous êtes abonné au groupe Google >>>> Groupes Symfony-fr. >>>> Pour envoyer un message à ce groupe, adressez un e-mail à >>>> [email protected]. >>>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>>> [email protected]<symfony-fr%[email protected]> >>>> . >>>> Pour plus d'options, consultez la page de ce groupe : >>>> http://groups.google.com/group/symfony-fr?hl=fr >>>> >>>> >>> >>> >>> -- >>> Cordialement, >>> >>> Manuel Brossard >>> Twitter: twitter.com/infonel >>> Skype : mantex2039 >>> >>> Tel: + 33 9 72 17 00 41 >>> >>> -- >>> Vous recevez ce message, car vous êtes abonné au groupe Google >>> Groupes Symfony-fr. >>> Pour envoyer un message à ce groupe, adressez un e-mail à >>> [email protected]. >>> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >>> [email protected]<symfony-fr%[email protected]> >>> . >>> Pour plus d'options, consultez la page de ce groupe : >>> http://groups.google.com/group/symfony-fr?hl=fr >>> >> >> >> >> -- >> Jérémy LEHERPEUR >> [email protected] >> >> -- >> Vous recevez ce message, car vous êtes abonné au groupe Google >> Groupes Symfony-fr. >> Pour envoyer un message à ce groupe, adressez un e-mail à >> [email protected]. >> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse >> [email protected]<symfony-fr%[email protected]> >> . >> Pour plus d'options, consultez la page de ce groupe : >> http://groups.google.com/group/symfony-fr?hl=fr >> > > > > -- > Cordialement, > > Manuel Brossard > Twitter: twitter.com/infonel > Skype : mantex2039 > > Tel: + 33 9 72 17 00 41 > > -- > Vous recevez ce message, car vous êtes abonné au groupe Google > Groupes Symfony-fr. > Pour envoyer un message à ce groupe, adressez un e-mail à > [email protected]. > Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse > [email protected]<symfony-fr%[email protected]> > . > Pour plus d'options, consultez la page de ce groupe : > http://groups.google.com/group/symfony-fr?hl=fr > -- Jérémy LEHERPEUR [email protected] -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr
