无法将对象转换为字符串。返回一个功能

时间:2015-02-03 02:45:07

标签: php

我需要返回一个函数的响应,我得到一个错误

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;
}

不知道为什么它会通过该代码,需要一些建议。

2 个答案:

答案 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();}