我在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不是数组的唯一文本。
我被困在里面好几个小时。
任何帮助都非常感谢。
答案 0 :(得分:0)
最后我找到了数组的格式,使其在csv export
中可用 $array [] = array("foo" =>"foo","bar"=>"bar","vvvv"=>"123");
我希望这会对其他人有所帮助。