为什么Laravel的Response :: json如果从另一个函数调用则返回空白?

Ark*_*ulG 2 php laravel

我正在使用Laravel构建API.我想将数据传递给基本控制器中的函数,并从那里通过Response :: json()提供JSON(原因是响应方法执行基准测试和日志记录等)

这有效:

<?php

public function show($id)
{
    $data = Member::find($id);

    return Response::json($data);
}
Run Code Online (Sandbox Code Playgroud)

这不是:

<?php

public function show($id)
{
    $data = Member::find($id);

    $this->respond($data);
}

private function respond($data)
{
    return Response::json($data);
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么响应:json()不喜欢被弹出另一个函数?

如果我echo Response::json($data)而不是return它输出完整的响应,包括标题.

所有输入赞赏.谢谢.

Sim*_*ast 7

正如cecilozaur评论的那样,也许你需要:

return $this->respond($data);
Run Code Online (Sandbox Code Playgroud)

这样响应实际上会返回到父函数.