我从这里得到参考: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上实现softdelete?
答案 0 :(得分:0)
使用jenssegers / laravel-mongodb并插入对象(文档)时,不会创建deteted_at
字段。在对象上执行delete()
时,将使用当前日期时间创建并设置该日期。保存对象时,不必分配null
值。默认情况下,如果先前执行过deleted_at
方法,该库将检索未设置字段null
或具有restore()
值的文档。
请不要忘记在模型的定义中使用use Jenssegers\Mongodb\Eloquent\SoftDeletes;
,否则,SoftDelete将不起作用,并且将始终返回所有记录。