Caso eu retorne um array em meu Controller no Laravel, um json é exibido ao acessar a rota em questão? Onde está essa configuração? Consigo mudar isso?
Caso eu retorne um array em meu Controller no Laravel, um json é exibido ao acessar a rota em questão? Onde está essa configuração? Consigo mudar isso?
Qual o tipo de saída que você gostaria que fosse exibida?
Só para tentar antecipar algo. Se sua intenção é retornar o array para a declaração da rota, você teria que fazer algo do tipo:
No controller:
public function teste() {
return [10, 20 ,30];
}
Na rota:
Route::get('/projeto/teste/', function() {
$controller = new \Projeto\Http\Controllers\TesteController();
$array = $controller->teste();
//fazer algo com o $array...
});
Caso sua rota esteja declarada como:
Route::get('/projeto/teste/', 'TesteController@teste')
Sera encaminhada para a response http o dado retornado. Se foi um array, então um objeto json será retornado, creio que não tenha saída mais legível que esta.
É só por curiosidade mesmo. Não tenho nenhuma necessidade diferente não.
Onde esta configuração fica definida, dizendo que é pra exibir como json?
Achei até interessante, mas inesperado...
Entendi, realmente é curioso. rs
Tentei pesquisar, mas também não encontrei nenhuma informação de onde ele, implicitamente, configura a Response HTTP com application/json e retorna os dados transformados de vetor ou objeto stdClass para json.
Acredito eu que, implicitamente, ele delegue essa transformação do dado para a classe Response. Que por sua vez faz uso da função json_encode() do php.
Vou deixar a questão aberta pra ver se alguém encontra, porque eu também procurei e não encontrei nada.
Caso ninguém responda aqui, marco a sua como solucionadora, Rafael!
Muito obrigado pela ajuda.
O que eu encontrei foi a possibilidade do Laravel retornar responses diferentes de Json, mas o conteúdo deve ser gerado manualmente, depois utilizado o código abaixo:
return response($content)
->header('Content-Type', $type)
Assim, se necessário for, dá para retornar XML, ou PlainText