public function executeExport($request) { if ($request->isMethod('POST')) { $exportManager = sfExportManager::create('Resource'); $sheets = array('stuff' => array('have', 'need'), 'info' => array('have', 'need'), 'time' => array('need')); foreach ($sheets as $prefix => $types) { $class = sfInflector::camelize($prefix . 'Resource'); $fields = Doctrine::getTable($class)->getColumnNames(); $fields = array_combine($fields, $fields); foreach ($fields as $key => $value) { $fields[$key] = sfInflector::humanize($value); } foreach ($types as $type) { $results = Doctrine::getTable($class)->createQuery()->where('transaction_type = ?', $type)->execute(); $exportManager->exportCollectionSheet($results, $fields, sprintf('%s %s', $type, $prefix)); } } $title = $request->getParameter('title', 'Donate_Nashville_Export'); $title = $request->getParameter('include_timestamp') ? $title . '-' . date('Y-m-d H:i') : $title; $exportManager->output($title); return sfView::NONE; } }