laravel and lumen 软删除操作
知识都是有联系的,这绝对是真理。作为一名小白,看了一点官方文档,把我自己理解的软删除操作给大家讲讲。有些就是套用官方文档的话。
定义:什么是软删除呢,所谓软删除指的是数据表记录并未真的从数据库删除,而是将表记录的标识状态标记为软删除,这样在查询的时候就可以加以过滤,让对应表记录看上去是被”删除“了。
通俗易懂说法:数据库的表中,使用了一个日期字段作为标识状态,这个日期字段可以自定义,这里我们使用deleted_at,如果对应模型被软删除,则该条记录的deleted_at字段的值为删除时间,否则该值为空。
开始操作:
我选择使用laravel 做示例,因为lumen的artisan命令太少。主要是原理!!!
添加model文件,并创建blog_users表.
运行如下命令:
php artisan make:model blogUser --migration

现在,已经生成了model文件,还有迁移文件。
我们用命令生成数据表,如下:
php artisan migrate

现在还差一个字段,就是deleted_at字段。继续命令,
php artisan make:migration alter_posts_deleted_at --table=blog_users

然后编辑生成的PHP文件如下:
<?php use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration; class AlterPostsDeletedAt extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('blog_users', function (Blueprint $table) {
//我新加部分如下一行
$table->softDeletes();
});
} /**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('blog_users', function (Blueprint $table) {
//
});
}
}
记得在migrations 文件夹中,把生成表的那个文件删掉,在继续执行如下命令,
php artisan migrate

你看deleted_at字段出来了吧。
好了,我要写代码了,不命令行了,哈哈哈。
<?php namespace App; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; class blogUser extends Model
{
//使用软删除
use SoftDeletes;
//设置表名
public $table = 'blog_users';
//设置主键
public $primaryKey = 'id';
protected $dates = ['deleted_at'];
}
现在,我们去控制器中吧,看看软删除好了没。
<?php namespace App\Http\Controllers;
use App\blogUser; class BlogUsedController extends Controller
{
public function softdel(){
$post = blogUser::find(1);
$post->delete();
if($post->trashed()){
echo '软删除成功!';
dd($post);
}else{
echo '软删除失败!';
}
}
}
执行结果:

lumen 也是这个原理,到时候,你数据表就手动创建,别用命令生成。model代码与控制器代码是主要的。
结束了,大功告成,如有不理解地方,请评论留言。
laravel and lumen 软删除操作的更多相关文章
- Laravel 查询包括软删除的记录
查询结果包括已被软删除的记录: Model::withTrashed()->get(); 只查询软删除记录: Model::onlyTrashed()->get(); PS:个人博客-La ...
- Laravel设置软删除及其恢复系列操作
软删除及其相关实现 在模型类中要使用SoftDeletestrait并设置$date属性数组 <?php namespace App\Models; use Illuminate\Databas ...
- laravel文件存储、删除、移动等操作
laravel文件存储.删除.移动等操作 一.总结 一句话总结: 启示:可以在操作遇到问题的时候,找文档找实例好好实验一下,也就是学习巩固一下,不必一定要死纠排错 1.laravel文件删除注意? 1 ...
- laravel框架总结(九) -- 软删除
当模型被软删除时,它们并不会真的从数据库中被移除.而是会在模型上设置一个 deleted_at 属性并将其添加到数据库.如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空. ...
- 软删除脏数据job笔记
某次处理一个case,发现线上库里有很多数据有问题.于是决定写一个job来将有问题的数据软删除掉.涉及到的两条SQL语句如下: <select id="loadTSKTVBillDai ...
- 关于Domino数据库的软删除
在Domino的数据库属性的 “高级” 附签(选择文件->数据库->属性),选中“允许软删除”,这样我们就启用了软删除功能,当一个文档没有删除的时候我们可以使用NotesDatabase的 ...
- Yii2 软删除
什么是软删除 后台操作,删除一条记录,不希望真正的从数据库中删除,用个字段标记一下.比如delete_at.默认0.当执行删除操作,更新delete_at为当前时间戳 这样列表显示的时候只查询dele ...
- django之自定义软删除Model
软删除 简单的说,就是当执行删除操作的时候,不正真执行删除操作,而是在逻辑上删除一条记录.这样做的好处是可以统计数据,可以进行恢复操作等等. 预备知识 Managers Managers 是djang ...
- Laravel5.1 模型 --软删除
软删除是比较实用的一种删除手段,比如说 你有一本账 有一笔记录你觉得不对给删了 过了几天发现不应该删除,这时候软删除的目的就实现了 你可以找到已经被删除的数据进行操作 可以是还原也可以是真正的删除. ...
随机推荐
- CSS-笔记1-选择器与文本元素
知识点一: CSS概念:CSS 指层叠样式表 (Cascading Style Sheets)(级联样式表) Css是用来美化html标签的,相当于页面化妆. 知识点二: 选择器格式与部分属性: 写法 ...
- Django的ModelForm组件
创建类 from django.forms import ModelForm from django.forms import widgets as wd from app01 import mode ...
- sklearn.neighbors.kneighbors_graph的简单属性介绍
connectivity = kneighbors_graph(data, n_neighbors=7, mode='distance', metric='minkowski', p=2, inclu ...
- CCF-201312-1-出现次数最多的数
问题描述 试题编号: 201312-1 试题名称: 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个正整数,找出它们中出现次数最多的数.如果这样的数有 ...
- “IAsyncOperation<StorageFile>”不包含“GetAwaiter”的定义
错误 CS4036 "IAsyncOperation<StorageFile>"不包含"GetAwaiter"的定义,并且找不到可接受类型为&quo ...
- 来个Button看一看
0.目录 1.前言 2.基本属性与方法 3.点点更健康 4.我的Button有点多 5.震惊!TextView竟然... 1.前言 每次写代码总会忘记一些东西,又要重新Goooooooooogle,好 ...
- C# 在RichTextBox中滚动鼠标时滚动的是父窗口的滚动条
1. RichTextBox u2 = new RichTextBox(); 2. 先记住日RichTextBox没有显示滚动条时的总宽度和显示宽度 u2.Width - u2.ClientSize. ...
- 使用PowerApps快速构建基于主题的轻业务应用 —— 进阶篇
作者:陈希章 发表于 2017年12月14日 在上一篇 使用PowerApps快速构建基于主题的轻业务应用 -- 入门篇 中,我用了三个实际的例子演示了如何快速开始使用PowerApps构建轻业务应用 ...
- C++教程之autokeyword的使用
一.autokeyword的前世 从C语言開始,autokeyword就被当作是一个变量的存储类型修饰符,表示自己主动变量(局部变量).它不能被单独使用,否则编译器会给出警告. #include &l ...
- 基于QT的异质链表实例
所谓的异质链表就是的节点元素类型能够不同.本实例採用C++抽象类和多态实现. #include <QApplication> #include<QPushButton> #in ...