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]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr
