Pentru a preveni pierderea accidentală a datelor importante, Laravel oferă funcționalitatea de Soft Deleting. Când un model marcat cu trait-ul SoftDeletes este șters prin delete(), înregistrarea nu este eliminată fizic din tabela SQL, ci i se populează coloana deleted_at cu timestamp-ul curent.
Toate interogările obișnuite vor exclude automat înregistrările șterse logic. Pentru a le include sau restaura, se folosesc metodele withTrashed(), onlyTrashed() și restore().
Exemplu: Folosirea SoftDeletes și restaurarea unui cont
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Customer extends Model
{
use SoftDeletes; // Necesită coloana $table->softDeletes() în migrare
}
// Utilizare:
// $customer->delete(); // Setează deleted_at = NOW()
// Customer::all(); // Returnează doar clienții activi
// Customer::withTrashed()->find($id)->restore(); // Restaurează clientul șters!
// $customer->forceDelete(); // Ștergere fizică definitivă din baza de date
Întrebări & Exemple de Cod:
Ștergere Logică cu SoftDeletes în EloquentAi o nelămurire despre utilizarea comenzii
Ștergere Logică cu SoftDeletes în Eloquentsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.