当前位置: 首页 > news >正文

防止更新或保存 Laravel 模型

例如,创建模型后,我不希望任何人能够再次更新该记录。相反,它应该被全新的记录覆盖并存档。

这是一个简单的特征,您可以在模型上使用它来禁用更新:

trait PreventsUpdating
{public static function bootPreventsUpdating(){static::updating(function (Model $model) {return false;});}
}

只需在您的模型上使用它,您将无法再更新它。

我们可以更进一步,使其更具可重用性和 DRY-er。

trait PreventsModelEvents
{public static function bootPreventsModelEvents(){foreach (static::$prevents as $event) {static::{$event}(function (Model $model) {return false;});}}
}

现在,当我们想在模型上使用它时,我们可以这样做:

class User extends Model
{use PreventsModelEvents;protected static $prevents = ['updating'];
}

当我们尝试更新User模型时,它将停止并返回 false。这也可以应用于其他事件,例如savingcreating

http://www.lryc.cn/news/379482.html

相关文章:

  • Cadence:Conformal系列形式验证工具
  • 一般人不要学Python?一般人怎么学Python!!
  • 微服务架构中间件安装部署
  • 车辆数据的提取、定位和融合(其一 共十二篇)
  • Vue3组件通信全解析:利用props、emit、provide/inject跨层级传递数据,expose与ref实现父子组件方法调用
  • 华为---OSPF被动接口配置(四)
  • 前端将Markdown文本转换为富文本显示/编辑,并保存为word文件
  • git-shortlog详解
  • 通过MATLAB实现PID控制器,积分分离控制器以及滑模控制器
  • Node.js 渲染三维模型并导出为图片
  • Win11下安装VS2022失败的解决办法
  • 动态规划:基本概念
  • 小山菌_代码随想录算法训练营第二十九天| 455. 分发饼干 、376. 摆动序列、53. 最大子序和
  • 快手可灵大模型开放视频续写功能,可生成最长约3分钟视频
  • 【代码随想录】【算法训练营】【第45天】 [198]打家劫舍 [213]打家劫舍II [337]打家劫舍III
  • python安装目录文件说明----Dlls文件夹
  • java实现持续集成
  • ClickHouse安装与下载22.3.2.2
  • 【Go语言】Gin 框架教程
  • MySQL性能问题诊断方法和常用工具
  • CGFloat转NSString保持原有的精度,末尾不添加0
  • UDS服务——TransferData (0x36)
  • jQuery 基本操作
  • 有玩家在2011年的MacBook上成功运行了Windows XP 还安装了触摸屏
  • 高纯PFA容量瓶PFA试剂瓶在半导体材料的应用
  • AudioSep:从音频中分离出特定声音(人声、笑声、噪音、乐器等)本地一键整合包下载
  • Prompt 提示词工程:翻译提示
  • 【MySQL 的三大日志的作用】
  • 数据库中数据的id生成和算法
  • SystemVerilog Assertion精华知识