测试软删除时出现了一些小问题。
model下user.php文件中
<?php
namespace app\index\model;
use think\Model;
use traits\model\SoftDelete;
class User extends Model
{
use SoftDelete;
protected $deleteTime = 'delete_time';
}
controller下user.php文件中
<?php
namespace app\index\controller;
use app\index\model\User as UserModel;
use think\Controller;
class User extends Controller
{
public function del()
{
UserModel::destroy(1);
// $user = new UserModel();
// dump($user->select());
// $user = UserModel::get(2);
//$user->delete();
//软删除的原理是找到delete_time 字段 如果这个字段不是null 就会判断这个字段已经被删除 所以::get()的时候就不会返回
}
}
出现的问题是进行软删除后数据库的delete_time字段没有反应,正常情况下软删除后会更新数据为一个时间戳。经过测试发现,在model中加上use SoftDelete;后直接查询数据库数据查询不到,结果为null,因此等同于软删除操作的对象不存在而导致软删除不成功。
在各种论坛搜索软删除相关的问题没有找到应对此问题的直接方案。
最后发现实际上是数据库的问题&#