I'm building an API using Laravel. I'd like to pass data to a function in the base controller and have the JSON served out via Response::json() from there (the reason for this is so that the response method carries out benchmarking and logging, among other things)
This works:
<?php
public function show($id)
{
$data = Member::find($id);
return Response::json($data);
}
This doesn't:
<?php
public function show($id)
{
$data = Member::find($id);
$this->respond($data);
}
private function respond($data)
{
return Response::json($data);
}
Can anyone tell me why Response:json() doesn't like being popped into another function?
If I echo Response::json($data)
instead of return
it outputs the full response, including the headers.
All input appreciated. Thanks.
As cecilozaur commented, perhaps you need to:
return $this->respond($data);
So that the response actually gets returned to the parent function.