2
respostas

Editar Produto

Alguém poderia dar uma luz ? Eu consigo renderizar o formulário de edição com todos os valores.

@extends('layout.principal')
@section('conteudo')

    <h1>{{$p->nome}}</h1>
    <form class="form-horizontal" action="/produtos/alterar" method="post">


        <input type="hidden" name="_token" value ="{{{ csrf_token() }}}"/>
        <div class="form-group">
            <label class="control-label col-sm-2">Nome</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" name="nome" value="{{$p->nome}}">
            </div>
        </div>
        <div class="form-group">
            <label class="control-label col-sm-2">Descrição</label>
            <div class="col-sm-10">
                <input type="text" name="descricao" class="form-control" value="{{$p->descricao}}">
            </div>
        </div>
        <div class="form-group">
            <label class="control-label col-sm-2">Valor</label>
            <div class="col-sm-10">
                <input type="number" name="valor" class="form-control" value="{{$p->valor}}">
            </div>
        </div>
        <div class="form-group">
            <label class="control-label col-sm-2">Quantidade</label>
            <div class="col-sm-10">
                <input type="number" name="quantidade" class="form-control" value="{{$p->quantidade}}">
            </div>
        </div>
        <button type="submit" class="btn btn-primary btn-block">Enviar</button>

    </form>

@stop

Porém agora eu fiquei perdido quanto ao que fazer, lá no ProdutoController eu criei o método alterar, mas não sei muito bem como eu posso passar a id para a função pra realizar o update. Pensei em usar o ->with(), mas como a id não é um input, não sei como fazer essa passagem. Poderiam me dar uma luz ? :)

public function altera($id){

        $produto = Produto::find($id);

        return view('produto.alterar', ['p' => $produto]);
    }

    public function alterar($id){

        $produto = Produto::find($id);

        $produto->update();

        return redirect()->action('ProdutoController@lista');
    }
2 respostas

Você pode usar um hidden para passar o id.. Outra solução é passar o id na action do formulário.. action=" /endereco?id={{id}}" e aí vc pega o parametro no método.. Não manjo de php, mas como sei um pouco sobre web, tentei ajudar :).

Coloca a route.php aqui, você passou o id la?