我需要返回一个函数的响应,我得到一个错误
function excel() {
// If I don't add return here, then calling excel() will always be empty.
// However when calling it I get the error ErrorException
return Excel::load($filePath, function($reader) {
$results = $reader->get();
return $results; // there's an array here
});
}
function test() {
return excel();
}
return test(); //Empty when it should have an array.
message: "Object of class Maatwebsite\Excel\Readers\LaravelExcelReader could not be converted to string"
type: "ErrorException"
我怎样才能正确实现我的目标? (最后是返回$ results)。
编辑: 从Laravel中使用的文件抛出错误,即:
406行
file: "/App/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Response.php"
引擎盖下的代码是
public function setContent($content)
{
if (null !== $content && !is_string($content) && !is_numeric($content) && !is_callable(array($content, '__toString'))) {
throw new \UnexpectedValueException(sprintf('The Response content must be a string or object implementing __toString(), "%s" given.', gettype($content)));
}
$this->content = (string) $content;
return $this;
}
不知道为什么它会通过该代码,需要一些建议。
答案 0 :(得分:0)
要修复它,我必须这样使用json_encode:
return json_encode(Excel::load($filePath, function($reader) {
$results = $reader->get();
return $results; // there's an array here
}));
"无法将对象转换为字符串。"是回答我自己的问题的关键(不得不做一些谷歌搜索)。
答案 1 :(得分:0)
function excel() {
return Excel::load($filePath)->get();}