Boa tarde @rodrigo.turini, esto tentando atualizar os produtos utilizando o Eloquente ORM no desafio do capitulo 10 do seu livro, mas algo nao esta a sair bem, carrego no botao atualizar e ele nao da nenhum erro mas quando consulto a listagem de produtos nao há mudança no produto que foi atualizado, ou seja, nenhum dos campos indicados para atualizacao nao muda o seu valor. Vou apresentar os metodos editar e atualiza ja a seguir.
public function editar($id) {
$produto = Produto::find($id);
if (empty($produto)) {
return "Esse produto não existe";
}
return view('produto.formulario_editar')->with('produto', $produto);
}
public function atualizar($id) {
$produto = Produto::find($id);
$parametros = Request::all();
$produto = new Produto($parametros);
$produto->update();
return redirect()->action('ProdutoController@lista')->withInput(Request::only('nome'));
}
agora o formulário para edição
@extends(‘layout.principal’)
@section('conteudo')
<h1 class="display-1 text-center">Editar produto</h1>
<form action="/produtos/atualizar/{$produto->id}" method="post">
<!-- quando passamos parametros via post, e obrigatorio definir esse input -->
<input type="hidden" name="_token" value="{{{ csrf_token() }}}">
<fieldset class="form-group">
<!--<legend><strong>Novo produto</strong></legend>-->
<input type="hidden" name="id" value="{{$produto->id}}">
<label for="nome_id">Nome</label>
<input class="form-control" type="text" name="nome" id="nome_id" value="{{$produto->nome}}">
<label for="descricao_id">Descrição</label>
<input class="form-control" type="text" name="descricao" id="descricao_id" value="{{$produto->descricao}}">
<label for="valor_id">Valor</label>
<input class="form-control" type="number" name="valor" id="valor_id" value="{{$produto->valor}}">
<label for="quantidade_id">Quantidade</label>
<input class="form-control" type="number" name="quantidade" id="quantidade_id" value="{{$produto->quantidade}}">
</fieldset>
<button class="btn btn-primary btn-lg float-right" type="submit">Atualizar</button>
</form>
@stop