Como alterar a situação e manter na mesma página com Laravel 10
Neste tutorial, será apresentado como alterar a situação e permanecer na mesma página com Laravel 10.
Primeiramente, será demonstrado como criar o link para a alterar a situação.
Em seguida, será explicado como efetuar a alteração da situação no banco de dados.
Por fim, será mostrado como manter o usuário na mesma página após editar a situação.
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 campo select no formulário com Laravel 10".
Criado o link para alterar situação na view "resources/views/contas/index.blade.php".
<a href="{{ route('conta.change-situation', [ 'conta' => $conta->id])}}">
{!! '<span class="badge text-bg-' . $conta->situacaoConta->cor . '">' . $conta->situacaoConta->nome . '</span>' !!}
</a>
No arquivo "routes/web.php", criada a rota alterar a situação.
Route::get('/change-situation-conta/{conta}', [ContaController::class, 'changeSituation'])->name('conta.change-situation');
Na controller "app/Http/Controllers/ContaController.php", criado o método "changeSituation". No mesmo, foi criado a QUERY SQL para editar a situação no banco de dados e, em seguida, retornado o usuário para a página anterior, mantendo-o na mesma página que estava quando clicou no link para alterar a situação.
// Alterar situação da conta
public function changeSituation(Conta $conta){
try{
// Editar as informações do registro no banco de dados
$conta->update([
'situacao_conta_id' => $conta->situacao_conta_id == 1 ? 2 : 1,
]);
// Salvar log
Log::info('Situação da conta editada com sucesso', ['id' => $conta->id, 'conta' => $conta]);
// Redirecionar o usuário, enviar a mensagem de sucesso
return back()->with('success', 'Situação da conta editada com sucesso!');
} catch( Exception $e){
// Salvar log
Log::warning('Situação da conta não editada', ['error' => $e->getMessage()]);
// Redirecionar o usuário, enviar a mensagem de erro
return back()->with('error', 'Situação da conta não editada!');
}
}
Baixar o código-fonte completo do projeto.
Bom, era isso. Espero que o tutorial tenha sido útil!