Bonjour!
J'ai en frontend un filtre et un pager. Très bien, ça roule.
J'aimerai récupérer la totalité du résultat de mon filtre (donc sans pager) et le mettre dans un tableur (pour export ou impression).
Comment peut-on se resservir de la requête du filtre dans executeExcel //My Query ?
Mon action :
ma vue excelSuccess
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 class frcapActions extends sfActions { public function executeIndex(sfWebRequest $request) { //le filtre $this->formFilter = new FrcapFormFilter($this->getFilter()); if ($request->isMethod('post')) { $this->formFilter->bind($request->getParameter($this->formFilter->getName())); } $query = $this->formFilter->buildQuery($this->getFilter()); //le pager $this->pager = new sfDoctrinePager('Frcap', 10); $this->pager->setQuery($query); $this->pager->getQuery(); $this->pager->setPage($this->getRequestParameter('page', 1)); $this->pager->init(); } public function executeFilter(sfWebRequest $request) { if ($request->hasParameter('_reset')) { $this->setFilter(array()); $this->forward('frcap', 'index'); } $this->formFilter = new FrcapFormFilter($this->getFilter()); $this->formFilter->bind($request->getParameter($this->formFilter->getName())); $this->setFilter($this->formFilter->getValues()); $this->forward('frcap', 'index'); $this->setTemplate('index'); } protected function buildQuery($q) { if (!isset($this->formfilter)) $this->formfilter = $this->getFilter(); $this->formfilter->setQuery($q); $query = $this->formFilter->buildQuery($this->getFilter()); return $query->execute(); } protected function getFilter() { return $this->getUser()->getAttribute('frcap.filter', array()); } protected function setFilter(array $formFilter) { return $this->getUser()->setAttribute('frcap.filter', $formFilter); } public function executeExcel(sfWebRequest $request) { //Turn off the layout $this->setLayout(false); //My query $this->formFilter = new FrcapFormFilter($this->getFilter()); $this->formFilter->bind($request->getParameter($this->formFilter->getName())); $query = $this->formFilter->buildQuery($this->getFilter()); $this -> excels = Doctrine_Core::getTable('Frcap')->find($query); $this->setTemplate('excel'); //Export the output in Excel $this->getResponse()->setContentType('application/msexcel'); $this->getResponse()->setHttpHeader('Content-Disposition', 'inline; filename="myfile.xls"'); }
Merci, je suis bloqué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php foreach ($excels as $excel): ?> <tr> <td><?php echo $excel->getId() ?></td> <td><?php echo $excel->getModel() ?></td> </tr> <?php endforeach; ?>
Partager