csv在以cakephp导出该文件时包含HTML

csv在以cakephp导出该文件时包含HTML,cakephp,Cakephp,我正在尝试执行导出和导入CSV文件的功能。 我已成功导入文件,但在导出文件时,下载的CSV文件包含带有页眉、正文和页脚的HTML代码。我想那是来自default.ctp,不确定 为什么,从哪里,代码会自动嵌入 <?php function export() { $fp = NULL; $results = NULL; $row = NULL; $results = $th

我正在尝试执行导出和导入CSV文件的功能。 我已成功导入文件,但在导出文件时,下载的CSV文件包含带有页眉、正文和页脚的HTML代码。我想那是来自
default.ctp
,不确定

为什么,从哪里,代码会自动嵌入

<?php function export()
    {
            $fp = NULL;
            $results = NULL;
            $row = NULL;        
            $results = $this->Order->find('all',array('fields'=> array('Order.sku','Order.inventory')));
            $fp = fopen('php://output','w+');
            $filename = "results.csv"; 
            header('Content-type: application/csv');
            header('Content-Disposition: attachment;');
            fputcsv($fp,array(
            'sku',
            'inventory'
            ));
            $ctr = count($results);
            print($ctr);
            foreach($results as $row) 
            {
                fputcsv($fp,array(
                $row['Order']['sku'],
                $row['Order']['inventory']
                ));
            }
          fclose($fp);

    } ?>

您需要禁用布局渲染,请将其粘贴到控制器操作中:

$this->autoRender = false;

技术上,这不是进行CSV的正确方法,您应该创建一个CSV布局和视图,但如果它起作用,请访问。这是一个简单的解决方案,或者创建一个包含必要标题的CSV布局,或者只使用内置的ajax布局:

$this->layout = 'ajax';

在控制器操作中。这将为您解决此问题。

禁用控制器中的布局

<?php

$this->layout=null;

?>


您使用的蛋糕版本是什么?这可能不起作用,因为OP似乎没有向视图传递任何信息。也许我误解了他在做什么。。这个export()函数位于哪个文件中?