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!