首页 > 解决方案 > 使用 cake php 和 AngularJS 创建和下载 csv 文件

问题描述

  public function userExport() {
    $list = array
        (
        "Peter,Griffin,Oslo,Norway",
        "Glenn,Quagmire,Oslo,Norway",
    );
    $file = fopen("php://output", "w");
    foreach ($list as $line) {
        fputcsv($file, explode(',', $line));
    }
    fclose($file);
    header('Content-type: text/csv');
    header('Content-Disposition: attachment; filename= "abc.csv"');
    $this->response->download($file);
    return;

}

当我从我的角度服务调用这个控制器时,上面的控制器应该下载 CSV 文件。但它显示错误

错误:

未找到 UsersController::userExport() 的视图。

上面的代码是正确的吗下面是调用这个控制器的角度服务代码

   exportUsers: function (success, failure) {
                    $http({
                        method: 'GET',
                        cache: false,
                        url: 'api/users/userExport'
                    }).success(function (data) {
                        success && success(data);
                    }).error(function (data, status) {
                        failure && failure(data, status);
                    });
                }

标签: angularjscakephpexport-to-csv

解决方案


您收到Error: The view for UsersController::userExport() was not found错误,因为相应的 .ctp 文件在您的 Views 文件夹中不可用。

在 Users 文件夹下创建一个 user_export.ctp 文件,或者在您的 userExport 函数中添加以下行。

$this->autoRender = false;

推荐阅读