Bingo j' ai trouvé..
1,1,1,2,4,bien,2,,1,,2,,2,,1,,parfait,0,"0000-00-00 00:00:00","0000-00-00
00:00:00"
J' ecris une nouvel fonction..
public function getEvaluationbycustomerToExport($customer)
{
$q = $this->createQuery('c')
->where('c.customer_id = ?', $customer );
return $q->setHydrationMode(Doctrine::HYDRATE_ARRAY)->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
>
>
--
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