gpt4 book ai didi

php - 如何在 laravel mongodb 上添加软删除? (拉拉维尔 5.3)

转载 作者:行者123 更新时间:2023-12-03 15:59:57 30 4
gpt4 key购买 nike

我从这里获取引用:https://github.com/jenssegers/laravel-mongodb#examples

我的模型是这样的:

<?php
namespace App\Models;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
use Jenssegers\Mongodb\Eloquent\HybridRelations;
use Jenssegers\Mongodb\Eloquent\SoftDeletes;
class Message extends Eloquent
{
use HybridRelations;
use SoftDeletes;
protected $connection = 'mongodb';
protected $dates = ['deleted_at'];
protected $fillable = ['subject', 'information', 'created_at', 'update_at'];
}

我要插入的代码如下:

Message::create([
'subject' => $subject,
'information' => $information,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
'deleted_at' => null
]);

我尝试运行代码,它成功插入到表中,但我没有找到deleted_at字段

如何在 laravel mongodb 上实现软删除?

最佳答案

当您使用 jenssegers/laravel-mongodb 并插入对象(文档)时,不会创建 deteted_at 字段。当您对对象执行 delete() 时,会使用当前日期时间创建并设置该值。保存对象时无需分配 null 值。默认情况下,库会检索未设置字段 deleted_at 的文档,或具有 null 值的文档,以防 restore()方法之前已经执行过。

不要忘记在模型定义中使用 Jenssegers\Mongodb\Eloquent\SoftDeletes;,否则 SoftDelete 将不起作用,并且始终返回所有记录。

关于php - 如何在 laravel mongodb 上添加软删除? (拉拉维尔 5.3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42752994/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com