1
resposta

Produto::create(Request::all()); - trocar a ordem dos parametros?

Boa noite,

Existe a possibilidade do metodo Produto::create(Request::all()); trocar a ordem dos parametros? se sim, como faço para não acontecer? se nao, porque?

Att. Vinicius

1 resposta

Fala Vinicius!

Algo que você mesmo pode fazer para testar é retornar os dados em Request::all(). Assim, você consegue tirar essa dúvida.

Ao invés de lhe dar a resposta diretamente, eu vou lhe ajudar a conseguir testar da maneira como mencionei. Assim, você pode usar esse conhecimento em situações futuras ok? : )

Na sua controller 'Produto', crie um método que retorna um jSON de tudo o que ele receber. Admitindo que você já importou corretamente o Facade do Request, pode ser algo como:

     public function epicReturn()
    {
        $data = Request::all();
        return response()->json($data);
    }

Não se esqueça de definir uma roda para ela em 'routes.php'. Assim:

Route::post('epicReturn', 'ProdutoController@epicReturn');

Temos tudo o que precisamos. Salve os dois arquivos e no terminal, coloque o laravel para trabalhar. Acesse a pasta que seu projeto está e no terminal mande o seguinte:

php artisan serve

Agora vamos fazer uma requisição e ver o resultado. Para isso, aconselho você a utilizar o Postman. Se ainda não conhece, baixe porque tenho certeza que lhe vai ser muito útil. Ele é uma extensão do chrome. ;)

No Postman, (por desencargo estou admitindo aqui que você ainda não conhece a ferramenta) no campo aonde você adiciona url, insira o caminho até o método que criamos:

http://localhost:8000/epicReturn

Altere o verbo HTTP de 'GET' para 'POST'. Quando você fizer isso, verá que a guia 'Body' será liberada. Acesse ela e tique a terceira opção 'raw'.

Com isso, podemos escrever o que será enviado em nossa requisição. Vamos trabalher com jSON para facilitar a vida. No select box que vai aparecer ao lado direito da opçaõ 'binary' (por padrão vai estar selecionado 'Text' em laranja) escolhe a opção 'jSON'.

No campo abaixo, é hora de escrever o que será enviado. Não sei dizer quais campos você tem em sua tabela uma vez que não tenho acesso a seu model 'Produto.php'. Mas vou simular aqui e você adapta aí ok?

{
    "id" : "1",
    "nome" : "Produtão Fera Demais",
    "preco": "99.99",
    "obs" : "Esse produto é muito bom mesmo cara!"
}

Uma vez feito isso, é clicar no botão azul 'Send' que está no canto direito da sua tela e esperar o resultado. No caso do exemplo, vai ser este:

{
    "id": "1",
    "nome": "Produtão Fera Demais",
    "preco": "99.99",
    "obs": "Esse produto é muito bom mesmo cara!"
}

Faça o teste aí e depois posta o resultado. Com base no seu teste, o que você acha: o método '::all()' pode trocar a ordem dos parametros?

Espero ter ajudado em algo. Qualquer coisa posta aeh.

Happy coding! : )