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

Répondre à