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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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