Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Curso de Laravel para Noobs - #16 Models VII [Delete e Soft Delete]

26/05/2023

Neste tutorial falaremos sobre dois conceitos importantes dentro do manejo do banco de dados que são: exclusão ou delete e o conceito de soft delete.

Delete e Soft Delete no Laravel

No Laravel, "delete" e "soft delete" são dois conceitos relacionados à exclusão de registros em um banco de dados.

"Delete" refere-se à exclusão permanente de um registro de um banco de dados. Quando você exclui um registro usando a função delete() em um modelo no Laravel, o registro é removido permanentemente do banco de dados e não pode ser recuperado posteriormente.

"Soft delete", por outro lado, é um recurso do Laravel que permite a exclusão lógica de registros. Em vez de remover o registro fisicamente do banco de dados, o Laravel adiciona uma coluna chamada "deleted_at" à tabela correspondente ao modelo e define o valor dessa coluna como a data e hora da exclusão. Isso indica que o registro foi excluído, mas ainda pode ser restaurado se necessário.

routes/web.php

Primeiramente iremos criar a rota que realizará a exclusão dos dados:

Route::get('/delete/{id}',[TodoController::class,'delete'])->name('delete');

app/Http/Controllers/TodoController.php

No TodoController faremos a função tanto para o delete comum que elimina para sempre o registro do banco de dados quanto o soft delete que apenas atribui uma data na coluna deleted_at e mantém o registro no banco, tirando tal registro da visualização do usuário final:

/**
 * Delete um dado no banco
*/
public function delete(Request $request)
{
    Todo::where('id','=',$request->id)->delete();
}

Voce pode reparar no código acima que tanto pra executar o delete quanto o soft delete usam o mesmo método, o que vai mudar é que você vai configurar sua migration e o seu model para trabalhar com soft deletes.

app/Models/Todo.php

No model Todo precisamos dizer que vamos usar soft deletes:

use Illuminate\Database\Eloquent\SoftDeletes;

class Todo extends Model
{
    use SoftDeletes;
}

database/migrations/TodoMigration.php

Na migration precisamos adicionar uma linha que irá criar a coluna deleted_at:

$table->softDeletes();

Após alterar a migration não esqueça de rodar o comando no terminal:

php artisan migrate

Então é isso pessoal! Por hoje é só! Fiquem todos com Deus! Sucesso nos códigos e na vida!

Do you need a teacher? webdesignemfoco@gmail.com

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Curso de Laravel para Noobs - #15 Models VI [Update]
No tutorial de hoje aprenderemos como realizar o update dos dados dentro do Laravel utilizando o Eloquent e o método update.
Saiba mais!
Curso de Laravel para Noobs - #17 Models VIII [HasMany]
Na aula de hoje aprenderemos como usar o relacionamento de um pra muitos dentro do Laravel, o famoso hasMany.
Saiba mais!
Framework
Nessa playlist aprenderemos um pouco mais sobre os diferentes frameworks existentes, apontando os defeitos e qualidades de cada um.
Saiba mais!