Symfony2创建并下载CSV

时间:2014-02-11 23:12:39

标签: php symfony csv

我正在尝试创建一个csv并将其下载到浏览器中。从我能找到的内容中,在Symfony2中有关于此的几乎ZERO文档。

这是我的代码:

 // Pass in all of the variables that will make up the pdf...
    $response = $this->renderView('WICPurchaseOrderBundle:PurchaseOrder:csv.html.twig', array( "data"=>$data
        )
    );
    $response->headers->set('Content-Type', 'text/csv'); // This is line 929 in the error.
    $response->headers->set('Content-Disposition', 'attachment; filename="teams.csv"');

    return $response;

这是我得到的错误:

 Notice: Trying to get property of non-object in /Applications/XAMPP/xamppfiles/htdocs/symfonydev/src/WIC/PurchaseOrderBundle/Controller/PurchaseOrderController.php line 929

任何人都有在Symfony2中使用CSV的经验,可以帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:2)

我的Symfony2应用程序中有一个成功的CSV下载,看起来你已经接近正确了。改变这一行:

$response = $this->renderView('WICPurchaseOrderBundle:PurchaseOrder:csv.html.twig', 
    array( "data"=>$data)
);

到此:

$response = $this->render('WICPurchaseOrderBundle:PurchaseOrder:csv.html.twig', 
    array( "data"=>$data)
);

renderView()方法呈现模板并返回其内容,但不创建响应。 render()方法返回包含模板内容的Response对象:

请参阅有关Rendering a template

的文档