Como criar o formulário editar com Laravel 10


Neste tutorial, será apresentado como criar o formulário de edição com Laravel 10. 

Primeiramente, será mostrado como criar o formulário editar. 

Em seguida, será apresentado como preencher o formulário editar com as informações do registro que será editado. 

Por fim, será mostrado como editar o registro no banco de dados com Laravel.


Download do código fonte desenvolvido na aula: Download

Curso de Laravel: Mais Detalhes do Curso

Playlist completa sobre Laravel: Acessar

Receber as aulas gratuitas do curso de Laravel: Acessar


Para começar, é utilizado como base o projeto da aula "Como criar a página visualizar detalhes do registro com Laravel 10".

No arquivo "routes/web.php", responsável pelas rotas, é criada a rota "editar" e enviado o id da conta na URL.

Route::get('/edit-conta/{conta}', [ContaController::class, 'edit'])->name('conta.edit');

Na controller "app/Http/Controllers/ContaController.php", foi criado o método "show", recuperado o ID da conta enviado através da URL, recuperado o registro do banco de dados e indicada a view com o formulário que deve ser carregada.

// Carregar o formulário editar a conta
public function edit(Conta $conta)
{
    // Carregar a VIEW
    return view('contas.edit', [ 'conta' => $conta]);
}

Criada a view "resources/views/contas/edit.blade.php" com o formulário de edição, e na TAG <form> indicado que, após o usuário clicar no botão salvar, os dados devem ser enviados para a rota "conta.update".

@if($errors->any())
    <span style="color: #ff0000;">
        @foreach ($errors->all() as $error)
            {{ $error }}<br>
        @endforeach
    </span>
    <br>
@endif

<form action="{{ route('conta.update', ['conta' => $conta->id ])}}" method="POST">
    @csrf
    @method('PUT')

    <label>Nome: </label>
    <input type="text" name="nome" id="nome" placeholder="Nome da conta" value="{{ old('nome', $conta->nome) }}"><br><br>

    <label>Valor: </label>
    <input type="text" name="valor" id="valor" placeholder="Usar '.' separar real do centavo"  value="{{ old('valor', $conta->valor) }}"><br><br>

    <label>Vencimento: </label>
    <input type="date" name="vencimento" id="vencimento"  value="{{ old('vencimento', $conta->vencimento) }}"><br><br>

    <button type="submit">Salvar</button>

</form>

No arquivo "routes/web.php", responsável pelas rotas, é criada a rota do tipo POST, chamando o método "update" que será responsável por editar no banco de dados.

Route::put('/update-conta/{conta}', [ContaController::class, 'update'])->name('conta.update');

Na controller "app/Http/Controllers/ContaController.php", criado o método "update". O mesmo recebe os dados, valida utilizando "ContaRequest", edita o registro no banco de dados e redireciona o usuário para a página de visualização, enviando a mensagem de sucesso.

// Editar no banco de dados a conta
public function update(ContaRequest $request, Conta $conta)
{
    // Validar o formulário
    $request->validated();

    // Editar as informações do registro no banco de dados
    $conta->update([
        'nome' => $request->nome,
        'valor' => $request->valor,
        'vencimento' => $request->vencimento,
    ]);

    // Redirecionar o usuário, enviar a mensagem de sucesso
    return redirect()->route('conta.show', [ 'conta' => $conta->id ])->with('success', 'Conta editada com sucesso');
}

Baixar o código-fonte completo do projeto.

Bom, era isso. Espero que o tutorial tenha sido útil!