无法在Restler 3 rc5中以csv格式导出响应

时间:2014-08-31 07:08:07

标签: restler

我在restler3 rc5中以csv格式导出响应时遇到问题。

public function downloadCSV()
{
$array = array(
    "foo", "bar"
);

return $array;
}

我有支持的格式行

 $r->setSupportedFormats('CsvFormat', 'JsonFormat'); 

但我得到一个空的csv。

请帮我解决这个问题。如果有任何标准数组格式,我们需要返回以将其转换为csv。请把格式发给我。

我已查看以下页面

供应商/ Luracast /格式/ CsvFormat.php

public function encode($data, $humanReadable = false)
{
    $char = Object::$separatorChar;
    Object::$separatorChar = false;
    $data = Object::toArray($data);
    Object::$separatorChar = $char;
    if (is_array($data) && array_values($data) == $data) {
        //if indexed array
        $lines = array();
        $row = array_shift($data);
        if (array_values($row) != $row) {
            $lines[] = static::putRow(array_keys($row));
        }
        $lines[] = static::putRow(array_values($row));
        foreach ($data as $row) {
            $lines[] = static::putRow(array_values($row));
        }
        return implode(PHP_EOL, $lines) . PHP_EOL;
    }
    throw new RestException(
        500,
        'Unsupported data for ' . strtoupper(static::EXTENSION) . ' format'
    );
}

问题是在上面的场景中返回的$行是空的(即

$array = array( "foo", "bar" );

encode函数中的(array_keys($ row)和array_values($ row)行是空的,因为$ row不是数组的唯一文本。

我被困在里面好几个小时。

任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:0)

最后我找到了数组的格式,使其在csv export

中可用
 $array [] = array("foo" =>"foo","bar"=>"bar","vvvv"=>"123");

我希望这会对其他人有所帮助。