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)
{
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
Si tu a une collection et que tu souhaite un array, tu dois changer ta
méthode d'hydratation.
Voici un bon comparatif des méthodes d'hydratation:
http://www.amicalement-web.net/benchmark-apache-doctrine-hydrate-object-vs-array/2009/10/08/
À 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',
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
J' ai déja une fonction getEvaluationbycustomer() qui fait la requête..
Le 2 décembre 2010 16:44, Jérémy LEHERPEUR jer...@leherpeur.net a écrit :
le execute n'est disponible que sur Doctrine_Query.
$evaluations = *Doctrine*::getTable('Evaluation') -*createQuery*('e')
-select('e.champ1,
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 mbross...@infonel.net 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 jer...@leherpeur.net a
Bingo j' ai trouvé..
1,1,1,2,4,bien,2,,1,,2,,2,,1,,parfait,0,-00-00 00:00:00,-00-00
00:00:00
J' ecris une nouvel fonction..
public function getEvaluationbycustomerToExport($customer)
{
$q = $this-createQuery('c')
-where('c.customer_id = ?', $customer );
return
Juste lélio .. je perd l' extension du fichier c ' est à modifier dans
$this-getResponse()-setHttpHeader('Content-Type','application/octet-stream');
Non ?
Le 2 décembre 2010 16:32, Lélio ML mailing-l...@lelio.fr a écrit :
À la fin de ta action, tu forces les header.
Allez, je suis sympa.
C'est plutot
$this-getResponse()-setHttpHeader('Content-Disposition',
sprintf('%s;filename=%s', 'attachment', $filename));
Tu met ton nom dans $filename
Le 2 décembre 2010 17:25, manuel brossard mbross...@infonel.net a écrit :
Juste lélio .. je perd l' extension du fichier c ' est à modifier
Oui
Et cette information est indépendante du vrai nom d'un fichier que tu
voudrais renvoyer avec un readfile(). C'est juste une information car tu ne
devrais pas utiliser de readfile() ici. Que se passerait-il si plusieurs
personnes demandait un export en même temps...
-Message
Réponse : les fichiers seront indexés sur l' id du client.
C' est ce que je fait mais il l' appel ExportationEvaluation.. au lieu de
file.csv
Le 2 décembre 2010 17:35, Lélio ML mailing-l...@lelio.fr a écrit :
Oui
Et cette information est indépendante du vrai nom d'un fichier que tu
12 matches
Mail list logo