Dans "Laravel 5.4", la suppression logicielle fait référence au marquage de l'état de l'enregistrement de la table avec l'état de suppression. Il n'est pas réellement supprimé de la base de données, de sorte qu'un filtrage peut être ajouté lors de la requête dans la table ; est identifié par la valeur du champ "deleted_at" et la valeur par défaut est null.
L'environnement d'exploitation de cet article : système Windows 10, Laravel version 5.4, ordinateur Dell G3.
La suppression logicielle n'est pas vraiment supprimée de la base de données, mais est identifiée dans la table avec la valeur du champ delete_at (le nom de ce champ est également fixe), qui doit être ajoutée dans la table de conception Lors de l'ajout de ce champ delete_at, la valeur par défaut est nulle,
La suppression dite logicielle signifie que les enregistrements de la table de données ne sont pas réellement supprimés de la base de données, mais que le statut d'identification des enregistrements de la table est marqué comme doux suppression, de sorte que lors de l'interrogation, vous puissiez le filtrer afin que les enregistrements de table correspondants semblent avoir été "supprimés". Laravel utilise un champ de date comme statut d'identification. Ce champ de date peut être personnalisé. Ici, nous utilisons delete_at. Si le modèle correspondant est supprimé de manière logicielle, la valeur du champ delete_at est l'heure de suppression, sinon la valeur est vide.
La suppression logicielle est une suppression logique. La marque unique de conservation des données est l'état de suppression. Généralement, nous utiliserons l'heure de suppression comme marque, de sorte que l'état de la marque soit disponible et l'heure de suppression soit également disponible.
Le type est timestamp('deleted_at')
Ajoutez l'utilisation de SoftDeletes
use Illuminate\Database\Eloquent\SoftDeletes; class TestModel extends Model { use SoftDeletes; protected $dates = ['deleted_at']; }
dans le modèle. L'exemple est le suivant :
Utilisez le propre ORM Eloquent de Laravel pour implémenter la suppression logicielle.
Ajoutez d'abord le champ d'heure de suppression dans le fichier de migration des données
./database/migrations/2014_10_12_000000_create_users_table.php
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); $table->softDeletes()->comment('删除时间');// 默认添加 deleted_at 字段 }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } };
[Recommandations associées : tutoriel vidéo laravel]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!