在 Laravel 中,实现模型的软删除非常简单。你只需要在模型中添加一个名为 softDeletes
的属性,并将其值设置为 true
。这将启用模型的软删除功能。Laravel 会自动处理软删除,包括从数据库中删除记录,但不会从磁盘上实际删除文件(如果你使用了文件存储)。
首先,确保你已经安装了 Laravel,并在你的项目中创建了一个模型。例如,我们创建一个名为 Post
的模型:
php artisan make:model Post -m
这将在 app/Models
目录下创建一个名为 Post.php
的文件,并生成一个与之关联的数据库迁移文件。
接下来,打开 Post.php
文件,并在其中添加 softDeletes
属性:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Post extends Model
{
use HasFactory, SoftDeletes;
// ...
}
现在,当你运行迁移文件以创建数据库表时,Laravel 会自动为 deleted_at
字段添加软删除功能:
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
$table->softDeletes(); // 添加软删除功能
});
}
完成这些步骤后,你可以使用 Laravel 的 Eloquent ORM 软删除和恢复模型记录。例如,要软删除一个帖子,你可以这样做:
$post = Post::find(1);
$post->delete();
要恢复一个软删除的帖子,你可以这样做:
$post = Post::withTrashed()->find(1);
$post->restore();
此外,你还可以使用 softDelete
和 forceDelete
方法:
// 软删除
$post->softDelete();
// 强制删除(实际删除记录)
$post->forceDelete();
这就是在 Laravel 中实现模型软删除的方法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。