接下来 up 来学下模型的删除。 删除数据是一件很危险的行为,up 刚刚入行的时候不小心给生产环境的用户表删除了,当时全靠谷歌用的好给恢复了不然我就跑路了?,现实版删库跑路?。...当时我希望能有一个恢复删除的功能比如说回收站,laravel 的模型为我们提供了很方便的软删除功能 要启用软删除首先数据表需要有 deleted_at 字段 之前玩迁移的时候简单的说了下创建迁移的时候调用...Laravel 的 数据库迁移 有创建这个字段的方法 现在,当你在模型实例上使用 delete 方法, 当前日期时间会写入 deleted_at 字段。...数据并没有真正被删除只是 deleted_at 不是 null 而是删除的时间了 让我们用代码去查询一下访问一下之前的 index 方法 ?...之前乱删除的数据变恢复回来了 但是如果要彻底删除改怎么做呢?
// 删除 $flight = App\Flight::find(1); $flight->delete(); // 通过主键删除模型 App\Flight::destroy(1); App\Flight..., 可以使用 trashed 方法 if ($flight->trashed()) { // ... } // 查询被软删除的模型 $flights = App\Flight::withTrashed...() ->where('account_id', 1) ->get(); $flight->history()->withTrashed()->get(); // 只获取软删除模型 $..., 它j接收一个关联数组, create 方法遵循模型属性的批量赋值操作 $post = App\Post::find(1); $comment = $post->comments()->create(...例如, 你可能想要使用 Laravel 加密器对存储在数据库中的数据进行加密, 并且在 Eloquent 模型中访问时自动进行解密.
点击添加按钮之后-----弹出一个新的activity--------在新的activity将数据输入保存之后,关闭当前的activity回到之前的activity刷新内容 实现:使用onActivityResult...intent.putExtra("fromMain", str); // startActivity(intent); // 启动需要监听返回值的Activity
首先在你安装完之后,都知道,很多系统都是有自带的一些软件之类,很多其实是不必要的,我们可以完全删掉,需要的时候再重装,那么安装完之后应该做什么呢? 1、智能升级。...安装新软件包,删除废弃的软件包: apt-get dist-upgrade; 2、自动删除无用的软件: apt-get autoremove; 3、删除libreoffice,libreoffice...虽然是开源的,但是Java写出来的office执行效率实在不敢恭维,装完系统后果断删掉 sudo apt-get remove libreoffice-common 4、删除Amazon的链接: sudo...apt-get remove unity-webapps-common 3.删掉基本不用的自带软件(用的时候再装也来得及) sudo apt-get remove thunderbird totem...,至于需要再安装什么软件的自己去装就好了,比如输入法,vim,sublime等等。
在上一篇教程中,我们基于 Eloquent 模型实现了对数据表记录的增删改查操作,今天我们在此基础上介绍两个 Eloquent 模型提供的高级功能 —— 批量赋值和软删除。...在介绍批量赋值之前,我们先看一个例子,之前我们新增或者修改 Eloquent 模型时都是通过依次设置每个属性来实现的: $post = new App\Post; $post->title = '测试文章标题...实现原理 Eloquent 模型类为我们提供了「软删除」功能的支持。这就意味着,在 Laravel 中,我们不需要编写任何额外代码就可以实现对数据库记录的「软删除」。...该字段默认值为 NULL,表示没有被软删除。如果要在模型类中支持软删除,需要在对应模型类(在本例中是 Post 模型)中添加支持软删除的 Trait: 模型类上做所有常规查询操作的时候就会过滤掉被软删除的记录(这些常规查询在上一篇教程中已经给出)。
trait使用之后,不会对字段是否存在进行校验。...,如果类常量DELETED_AT为null,则不执行相应的软删除操作 4、join操作,只会在对当前模型添加软删除查询条件 5、在belonsToMany关联关系中,如果关联表,中间表,被关联表都有软删除字段...但是中间表的软删除不是通过scope实现的,关联关系对象在创建的时候就已经把中间表的软删除条件附加上去了,因此,即使指定了withTrashed,也会有中间表的软删除查询条件。...如果要修改,也可以,通过scope的方式附加软删除条件,这样就能保证软删除的查询条件是在真正查询的时候才附加上去。...从上面可以看出,Laravel的软删除,在关联关系中会造成一些查询上条件的歧义,非常容易产生bug.而且,belongsToMany中间表的问题是无解的。
Git reset 之后 怎么恢复到 reset 之前的节点 首先定位到 工程目录\ .git\logs\refs\heads 这里会显示本地对应的分支名字(master、 dev 等等) 然后找到你执行...reset 操作的分支名字, 比如 master....a0da4025a0f67503d59f3b7b2f17efa16853aca4 username email 时间戳 时区 reset: moving to a0da4025a0f67503d59f3b7b2f17efa16853aca4 找到最下面最开始的一次...reset 操作,上面文件的倒数第二条。
软删除功能需要实现的功能有以下几点: 1.模型执行删除操作,只标记删除,不执行真正的数据删除 2.查询的时候自动过滤已经标记为删除的数据 3.可以设置是否查询已删除的数据,可以设置只查询已删除的数据 4...Laravel中软删除数据的过滤也是使用这种方式实现的。...Scope的作用只在于当前模型,以及关联模型操作上。...以上就是Laravel实现软删除的大概逻辑。这里有一个细节,Laravel中软删除的标记是一个时间格式的字段,默认delete_at。通过是否为null判断数据是否删除。...但是有的时候,项目中会使用一个整形的字段标记数据是否删除。在这样的场景下,需要对Laravel的软删除进行修改才能够实现。
「ActiveRecord」是 ORM 的一种实现模式,Eloquent 则是 Laravel 版的「ActiveRecord」。...一个 Eloquent 模型类映射一张数据表,通过模型类提供的方法,你可以获取其映射的数据表的所有记录,也可以获取单条记录,还可以创建、更新和删除对应数据表记录,而这一切都不需要你编写任何 SQL 语句...下面我们将模型类定义的时候还会强调这一点。 模型类定义 使用模型类之前,需要在数据库有对应的数据表,因为模型类就是数据表在面向对象编程语言中的映射。...中的所有数据库查询操作。...]); 删除数据 通过模型类删除对应数据表记录和更新记录类似,都要先获取对应操作模型实例,删除对应记录更简单,获取到模型实例后,直接调用其删除方法即可: $post = Post::find(31);
以bitehist为例: 使用BPF之前: 1、在内核中:开启磁盘IO事件的插桩观测。 2、在内核中,针对每个事件:向perf缓冲区写入一条记录。...如果使用了跟踪点技术(推荐方式),记录中会包含关于磁盘IO的几个元数据字段。 3、在用户空间:周期性地将所有事件的缓冲区内容复制到用户空间4。在用户空间:遍历每个事件,解析字节字段的事件元数据字段。...在用户空间:生成字节字段的直方图摘要。 其中步骤2到步骤4对于高I/O的系统来说性能开销非常大。...1、在内核中:启用磁盘IO事件的插桩观测,并挂载一个由bitesize工具定义的BPF程序。 2、在内核中,对每次事件:运行 BPF 程序。...这个过程避免了将事件复制到用户空间并再次对其处理的成本,也避免了对未使用的元数据字段的复制。如前面的程序输出截图所示,唯一需要复制到用户空间的数据是“count”列,其是一个数字数组。
Laravel在模型事件中处理起来很方便:https://laravel-china.org/docs/laravel/5.5/eloquent#events Laravel 的模型事件有两种方式,...url')->comment('当前操作的URL'); $table->string('method')->comment('当前操作的请求方法'); $...ObserverLogServiceProvider中运行 ObserverLogServiceProvider 为需要的模型注册事件(我这挺多的,之后大概长这样) 模型注册事件...PermissionRoleEventLog 之后应用事件 事件 更优雅的处理登录注销事件 在EventServiceProvider中的subscribe属性绑定好处理的类...EventServiceProvider 事件监听类的方法 事件监听类 之后的效果就是这样了: 数据库 END
Laravel中模型事件什么意思?...Laravel已经实现定义了不少的模型事件: creating, created, updating, updated, saving, saved, deleting, deleted, restoring..., restored 如上名称,代表在具体的模型中,当发生:正在新增、已新增、已更新...模型时,要去触发的一些事件。...---- Laravel中有三种方法来定义模型事件。...3.静态方法 还可以通过模型上的对应静态方法来定义一个事件,在EventServiceProvider的boot方法里面定义: <?
引言 上一节我们讲了通过模型方法新建条目,或者更新数据。对于写操作还有更为重要的一个方法, 就是数据的删除。删除数据,有物理删除和软删除的区别。 ?...我们从软删除的使用,再顺便说一说模型内的作用域的概念。 代码时间 常规的删除操作分两步进行,一步是把数据从数据库中查询出来,使用laravel模型的方法, 则返回的是一个模型对象。...所以引入了软删除的概念,就是在表内添加一个字段,用于标记,这一行条目是否算是删除状态。在laravel中, 这个软删除字段默认是 deleted_at。你也可以在模型中手动指定。...然后在模型中,引入软删除的功能,将其进行全局生效的使用。...写在最后 本文从laravel模型的写操作删除动作,讲到了软删除的概念。进而引申出来本地作用域和全局作用域的使用。软删除几乎贯穿了我们应用的始终,需要大家勤学苦练。
1、获取上传的文件 $file=$request->file('file'); 2、获取上传文件的文件名(带后缀,如abc.png) $filename=$file->getClientOriginalName...(); 3、获取上传文件的后缀(如abc.png,获取到的为png) $fileextension=$file->getClientOriginalExtension(); 4、获取上传文件的大小...$filesize=$file->getClientSize(); 5、获取缓存在tmp目录下的文件名(带后缀,如php8933.tmp) $filaname=$file->getFilename()...; 6、获取上传的文件缓存在tmp文件夹下的绝对路径 $realpath=$file->getRealPath(); 7、将缓存在tmp目录下的文件移到某个位置,返回的是这个文件移动过后的路径 $path...=$file->move(path,newname); move()方法有两个参数,第一个参数是文件移到哪个文件夹下的路径,第二个参数是将上传的文件重新命名的文件名 8、检测上传的文件是否合法,返回值为
2020年的最后一天,是国内金融机构的年度重磅——年终决算的日子。这一天,数百家金融机构在腾讯云TDSQL之上完成年终决算。...在过去的1年,TDSQL技术上持续攻坚,同时完成多项国产数据库领域的行业突破……2021,我们也将继续前进,开拓核心基础软件领域的新篇章。...1 TDSQL的进化:在未来之前,更在未来之后 未来,数据库技术将在底层技术超融合方向上持续深化,提供更加高效、便捷、标准统一的数据技术支撑服务。...全新升级后的腾讯云TDSQL,是涵盖了金融级分布式产品序列TDSQL,单体实例可支撑百T百万QPS的云原生序列TDSQL-C,可应用于百P级复杂场景的分析型序列TDSQL-A等多引擎超融合的完整数据库产品体系...,更重要的不只是需求驱动,而是前沿技术的预研,为下一代、甚至下下一代数据库技术做研发创新,在更长远的未来中提升我国核心技术竞争力。
1 实现 要实现达到一定大小后将日志文件压缩,并删除三天前的日志数据,可以结合使用 SizeAndTimeBasedRollingPolicy 滚动策略和 DeleteOlderThan 选项来配置。...,当文件大小达到该值时,会触发滚动和压缩操作。...: 设置日志文件总大小的上限,当总大小达到该值时,会触发删除较早日志的操作。...: 设置为 true,表示在应用启动时进行滚动操作。...: 设置删除比指定时间早的日志文件,这里设置为 3d,表示删除三天前的日志。 : 设置压缩模式,这里使用 gzip 进行压缩。
最近被 Laravel 模型中的一些小问题折腾的死去活来的,明明看着很清晰很明了的代码,却偏偏不能实现功能,现在带大家来切身经历一下这次奇妙的踩坑经历,代码看似很多,实则不多,大家别急着跑,哈哈。...具体的数据打印结果我就不贴出来了哈,占地方,哈哈,我直接说结果。 从打印的结果中可以看到 $userTask->tasks 中是有合并之后的数据的,但是 $userTask 还是原先的数据。...测试结果很显然是成功的,但是大家可能会发现直接操作 relations 或许有些不妥,别急,Laravel 也给我们提供了这样一个方法: ? 现在我们把代码优化一下: ......大家知道在控制器中直接 return 的时候,是会直接转化为 Json 数据格式的,模型中也相对应的有这么一个方法: ? ? 一步步走下来发现,最终还是调用了 toArray 。...特别鸣谢: zIym 同学[1] (咱俩一起跨的坑,哈哈) 结束语 其实吧最初我也没有想这么多,想了很多其它的解决办法,但是都是治根不治本,到头来发现自己对 Laravel 模型的工作原理还是不熟悉,只存在简单的应用上面
文章目录 第一种方式:根据文件的修改日期 第二种方式:根据文件名 第一种方式:根据文件的修改日期 #!/bin/bash #删除30天以前的日志数据 日志位于./logs 文件夹下 find ..../logs/ -mtime +30 -name "*.log*" -exec rm -rf {} \; 第二种方式:根据文件名 #要删除日志的时间区间 log_dir=/logs content=$(date...+%Y%m%d --date '1 month ago') cd $log_dir #计算删除文件的数量 FileNum=$(find -name "*$content*".log|wc -l)
上一篇的博客写的是修改操作,且附有源码和数据库,这篇博客写的是删除操作,附有从头至尾写的代码(详细的注释)和数据库! ...下面先将删除操作的流程过一遍: 1:执行伪删除操作的流程: 1.1:点击删除按钮就是这一句话,提交到system/userinfodelete这个路径的servlet层,注意是doSet()...显示当前删除之后的信息。 ...> 65 2:之后就到了删除的servlet层。...至此伪删除操作全部完成,希望看到这个博客的明白这个执行的流程,思路明白,代码会写,这样就ok了。 最后将演示的效果展示一下: 打开用户信息的页面: ? 点击删除之后查看第一行已经消失咯哦: ?
它的代码比较长,刚开始也是进行函数的堆栈初始化操作,这个初始化主要是保存原始的ebp,保存重要寄存器的值,并且改变ESP的指针值初始化函数堆栈,这些就不详细说明了,感兴趣的可以去看看我之前写的关于函数反汇编分析的内容...而这个链表的头指针被存到fs寄存器中 知道了这点之后再来看这段代码,首先将异常函数入栈,然后将之前的链表头指针入栈,这样就组成了一个EXCEPTION_REGISTRATION_RECORD结构的节点而这个节点的指针现在就是...ESP中保存的值,之后再将链表的头指针更新,也就是最后一句对fs的重新赋值,这是一个典型的使用头插法新增链表节点的操作。...之后就是进行各种初始化的操作,调用GetVersion 获取版本号,调用 __heap_init 函数初始化C运行时的堆栈,这个函数后面有一个 esp + 4的操作,这里可以看出这个函数是由调用者来做堆栈平衡的...到此,这篇博文简单的介绍了下在调用main函数之前执行的相关操作,这些汇编代码其实很容易理解,只是在注册异常的代码有点难懂。
领取专属 10元无门槛券
手把手带您无忧上云