laravel软删除

本文介绍了Laravel框架中EloquentORM的软删除功能,包括如何使用`SoftDeletes`行为,进行删除、查询、恢复数据的操作。`CamelCasing`用于字段名转换。软删除允许数据在逻辑上删除而不实际从数据库中移除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2023年6月22日09:49:49

laravel框架的版本 "laravel/framework": "^9.19"

使用demo

<?php

namespace App\Models;

use Eloquence\Behaviours\CamelCasing;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Feedback extends Model
{
    // 蛇形命名转驼峰
    use CamelCasing;

    // 软件处
    use SoftDeletes;

    // 表名
    protected $table = 'feedback';
    // 主键id
    protected $primaryKey = 'id';
    // 不可被批量赋值的字段
    protected $guarded = [];
    // 不维护时间字段
    public $timestamps = false;
    // 返回隐藏的字段
    protected $hidden = ['delete_at'];
    // 返回显示的字段
    protected $visible = [];
    // 自定义软删除字段 默认 deleted_at
    const DELETED_AT = 'delete_at';
}

orm查询使用

// 软删除
User::destroy(1);
// 查询不带软删除数据
$user = User::find(1);
// 软删除
$user->delete();
// 真实删除
$user->forceDelete(true);

// 默认情况下查询的数据不包含软删除数据,如果需要包含软删除的数据,可以使用下面的方式查询:
User::withTrashed()->find();
User::withTrashed()->select();

// 如果仅仅需要查询软删除的数据,可以使用:
User::onlyTrashed()->find();
User::onlyTrashed()->select();

// 恢复被软删除的数据
$user = User::onlyTrashed()->find(1);
$user->restore();

Model::withTrashed()->where('column', 'value')->restore();

软删除的删除操作仅对模型的删除方法有效,如果直接使用数据库的删除方法则无效,例如下面的方式无效(将不会执行任何操作)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值