在restler3 rc5中导出csv格式的响应时出现问题。
public function downloadCSV()
{
$array = array(
"foo", "bar"
);
return $array;
}
我有受支持的格式行
$r->setSupportedFormats('CsvFormat', 'JsonFormat');
但是我得到了一个空的csv。
请在这方面帮帮我。如果有任何标准数组格式,我们需要返回以将其转换为csv。请把格式发给我。
我已签入以下页面
供应商/Luracast/Format/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'
);
}
问题是在上面的场景中返回的$lines是空的(即
$array = array( "foo", "bar" );
encode函数中的(array_keys( $row )和array_values($row)行是空的,因为$row不是数组中唯一的文本。
我被困在里面好几个小时了。
任何帮助都是非常感谢的。
发布于 2014-08-31 18:51:38
最后,我找到了数组的格式,使其在csv导出中可用
$array [] = array("foo" =>"foo","bar"=>"bar","vvvv"=>"123");
我希望这能对其他人有所帮助。
https://stackoverflow.com/questions/25589724
复制相似问题