thinkphp自动完成、软删除 和时间戳

一、总结

自动完成:没有手动赋值的情况下进行手动处理

软删除:实现假删除,可以进行恢复

时间戳:系统支持自动写入创建和更新的时间戳字段

二、thinkphp自动完成、软删除 和时间戳

1、自动完成

1、修改器和自动完成区别

修改器:数据赋值的时候自动进行转换处理

自动完成:没有手动赋值的情况下进行手动处理

2、自动完成

// 增加和修改操作都会执行

protected $auto=[];

// 创建数据执行

protected $insert=['create_time'];

// 修改数据执行

protected $update=['update_time'];

2、时间戳

1、系统支持自动写入创建和更新的时间戳字段

1) 在配置文件中设置

// 自动写入时间戳字段

'auto_timestamp'  => true,

2) 在数据模型中设置

// 设置自动写入时间戳

protected $autoWriteTimestamp=true;

2、可以设置字段默认值

// 增加时间的字段

protected $createTime='create_times';

// 更新时间的字段

protected $updateTime='update_times';

3、取消更新时间戳设置

protected $updateTime=false;

3、软删除

1、作用:

实现假删除,可以进行恢复

2、实现

<?php

// 声明命名空间

namespace app\index\model;

// 导入系统的数据模型

use think\Model;

// 配合软删除

use traits\model\SoftDelete;

// 声明user模型

class User extends Model{

// 使用软删除

use SoftDelete;

// 设置删除的时间戳

protected $deleteTime="delete_times";

}

3、控制器

1、删除数据

$res=User::destroy(15);

2、获取数据

$res=User::get(15);

// 软删除 数据库数据存在,但是get获取不到

3、直接删除数据

$res=User::destroy(14,true);

$user=new User();

$res=$user->where("id",'5')->delete();

4、读取所有数据包含软删除数据

$res=User::withTrashed()->find(15);

$res=User::withTrashed()->select();

5、仅仅读取软删除数据

$res=User::onlyTrashed()->select();

$res=User::onlyTrashed()->find(1);

thinkphp自动完成、软删除 和时间戳的更多相关文章

  1. laravel框架总结(九) -- 软删除

    当模型被软删除时,它们并不会真的从数据库中被移除.而是会在模型上设置一个 deleted_at 属性并将其添加到数据库.如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空. ...

  2. ThinkPHP 自动验证与自动填充无效可能的原因(转)

    自动验证与自动填充是在使用ThinkPHP时经常用到的功能,但偶尔会遇到自动验证与自动填充无效的情况,本文就ThinkPHP 自动验证与自动填充无效可能的原因做一些分析. create() Think ...

  3. ThinkPHP 自动验证与自动填充无效可能的原因

    原文链接:http://www.5idev.com/p-thinkphp_validate_auto_Invalid.shtml 自动验证与自动填充是在使用ThinkPHP时经常用到的功能,但偶尔会遇 ...

  4. Yii2 软删除

    什么是软删除 后台操作,删除一条记录,不希望真正的从数据库中删除,用个字段标记一下.比如delete_at.默认0.当执行删除操作,更新delete_at为当前时间戳 这样列表显示的时候只查询dele ...

  5. 实现HBase增量入库(HBase删除自定义时间戳行数据)

    目录 1. 背景描述 2. 问题描述 3. 解决方案 1. 背景描述 目前在做音乐推荐项目,前期做排序模型优化,任务是使用模型对用户的历史音乐进行排序,有6800多万个用户,约40G的用户数据,使用H ...

  6. Laravel5.1 模型 --软删除

    软删除是比较实用的一种删除手段,比如说 你有一本账 有一笔记录你觉得不对给删了 过了几天发现不应该删除,这时候软删除的目的就实现了 你可以找到已经被删除的数据进行操作 可以是还原也可以是真正的删除. ...

  7. laravel5.2总结--软删除

    当模型被软删除时,它们并不会真的从数据库中被移除.而是会在模型上设置一个 deleted_at 属性并将其添加到数据库.如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空. ...

  8. ef core SoftDelete Multi-tenancy 软删除、多租户实现 Global Query Filters

    ef core提供了Global Query Filters特性来实现多租户与软删除,收集了一些实现方法. 最简单的例子时微软官方的特性解释. https://docs.microsoft.com/e ...

  9. xorm-删除和软删除实例

    删除数据Delete方法,参数为struct的指针并且成为查询条件.注意:当删除时,如果user中包含有bool,float64或者float32类型,有可能会使删除失败 package main i ...

随机推荐

  1. 为root账户更名

    为root账户更名 处于安全考虑许多管理员想把root更名,具体方法如下: 1.先以root登陆系统 2.用vi 编辑/etc/passwd文件,将第一行的第一个root修改为你想要的账户名,然后保存 ...

  2. Kali Linux下安装VMware Tools

    引言 Kali Linux是基于Debian的Linux发行版, 设计用于数字取证和渗透測试.安装Kali Linux非常easy,可是安装VMware Tools的过程就有点麻烦了,由于在安装中途会 ...

  3. 3、Task.Factory属性

    3.Task.Factory属性 Task类提供了一个Factory静态属性,这个属性返回一个TaskFactory对象. Task task = Task.Factory.StartNew(Task ...

  4. HDU 1007 Quoit Design 平面内最近点对

    http://acm.hdu.edu.cn/showproblem.php?pid=1007 上半年在人人上看到过这个题,当时就知道用分治但是没有仔细想... 今年多校又出了这个...于是学习了一下平 ...

  5. GeoServer 常见问题总结 (转)

    geoserver在部署发布服务时,经常会遇到如下问题,现总结如下: 1.忘记了GeoServer Web Admin Page的登陆用户名和密码怎么办?存储位置:C:\Program Files\G ...

  6. VBS 脚本调用

    https://my.oschina.net/Tsybius2014/blog/602641

  7. HTML基础第八讲---序列卷标

    转自:https://i.cnblogs.com/posts?categoryid=1121494 什么叫做序列卷标?其实,这是一个大家都蛮熟悉的东西,只是在网页中换个名称来称呼罢了,序列卷标的功能在 ...

  8. 如何不使用js实现鼠标hover弹出菜单效果

    最近看到很多同学在实现鼠标hover弹出菜单的效果时都是用的js代码去实现的,默认给弹出隐藏掉,通过js事件绑定动态的显/隐弹出菜单元素. <ul> <li>主页</li ...

  9. C# mongodb帮助类

    这是在C#连接MongoDB的帮助类,所使用的驱动是在Vs2015的Nuget管理器中下载的mongodb驱动. 下载第一个,会自动下载下面的两个,不要删除. 在配置文件中配置连接字符串connStr ...

  10. amazeui学习笔记--js插件(UI增强)--警告框Alert

    amazeui学习笔记--js插件(UI增强)--警告框Alert 一.总结 1.警告框基本样式:用am-alert声明div容器, <div class="am-alert" ...