Laravel Eloquent 中 fresh() 和 refresh() 的区别

这是一篇简短的博客文章,解释了 Eloquent 模型上 fresh() 和 refresh() 之间的差异。

假设我们手头有一个由 $team 变量表示的团队模型。

在 Laravel 中, $team->fresh() 和 $team->refresh() 都用于从数据库重新加载与模型关联的数据。 然而,它们之间在使用方式上存在细微的差别:

  • $team->fresh():

    • $team->fresh() 是一种从数据库重新加载模型数据的更明确的方法。

    • 它使用数据库中的数据返回模型的新实例,保持原始模型不变。

    • 当您想要获取模型的新实例而不修改现有实例时,它非常有用。

  • 例子:

  •  $freshTeam = $team->fresh();
       // $team 保持不变,$freshTeam
       // 包含刷新后的数据
  • $team->refresh():

    • $team->refresh()是直接就地刷新现有模型数据的方法。

    • 它修改模型的当前实例,使用数据库中的数据更新其属性。

    • 当您想要刷新当前模型的数据而不创建新实例时,这非常有用。

  • 例子:

  •    $team->refresh();
       // $team 使用刷新的数据进行更新
  • 总之,关键区别在于$team->fresh()返回具有新数据的新实例,同时$team->refresh()就地更新现有实例。它们之间的选择取决于您是要使用模型的新副本还是更新现有模型。


文章来源地址https://www.toymoban.com/diary/laravel/392.html

到此这篇关于Laravel Eloquent 中 fresh() 和 refresh() 的区别的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/laravel/392.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
上一篇 2023年10月13日 14:46
下一篇 2023年10月14日 00:50

相关文章

  • 前端食堂技术周刊第 100 期:TS 5.3 Beta、ViteConf2023、Rspress 1.0、Fresh 1.5、Chrome 118

    美味值:🌟🌟🌟🌟🌟 口味:乌龙金桂 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看下上周的技术资讯。 TypeScript 5.3 Beta ViteConf 2023 回放 Rspress 1.0 正式发布 Fresh 1.5 Parcel v2.10 New in Chrome 118 Nuxt 支持运行在

    2024年02月07日
    浏览(61)
  • 前端食堂技术周刊第 95 期:Fresh 1.4、Rollup 迁移至 SWC计划、RSC Devtools、使用开源库的边界、AI 帮你讲论文

    美味值:🌟🌟🌟🌟🌟 口味:冰葡美式 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看下上周的技术资讯。 Fresh 1.4 发布 H3 1.8 发布 TypeScript 将代码格式化工具迁移到 dprint Rollup 迁移到 SWC 计划 国产 AI 辅助编

    2024年02月11日
    浏览(56)
  • Appium-Refresh(刷新)

    Refresh the current page (Web context only) //刷新当前页(仅限Web上下文) Example Usage Java driver.refresh(); Python self.driver.refresh() Javascript // webdriver.io example driver.refresh(); // wd example await driver.refresh(); Ruby # ruby_lib example navigate.refresh # ruby_lib_core example @driver.navigate.refresh C# driver.Navigate().Refres

    2023年04月08日
    浏览(42)
  • Token和Refresh Token

    在计算机身份认证中代表令牌,在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。 JWT(JSON Web Token)是为了在网络应用环境间传递声明而执行的一种基

    2024年02月05日
    浏览(44)
  • Unity Error refreshing assets报错

    问题: Error refreshing assets这个报错,害我无法下载unity官方资源商店的免费资源。 网上也有相关的解决办法,比如:关闭防火墙、登出unity hub账户再重登,然后重启unity hub, 但是我试了很多次,都没用,依旧报错Error refreshing assets。 解决: 最后无奈,只能卸载unity hub,重新

    2024年02月12日
    浏览(46)
  • jwt,accesstoken、refresh token详解

    JWT(json web token) 概念 JWT定义了一种紧凑的,自包含的形式,被用作在网络中安全的传输信息 格式 例如:xxxx.yyyyyyy.zzz 根据.分割,可以得到三部分,header,payload,signature。每部分可以使用Base64解码,就是一个JSON对象。 payload中会包含当前jwt的颁发者信息,JWT有效期,用户的凭证

    2024年02月16日
    浏览(56)
  • 理解ES的refresh、flush、merge

    对于任何数据库的写入来讲fsync刷盘虽然保证的数据的安全但是如果每次操作都必须fsync一次,那fsync操作将是一个巨大的操作代价,在衡量对数据安全与操作代价下,ES引入了一个较轻量的操作refresh操作来避免频繁的fsync操作。 在ES中,当写入一个新文档时,首先被写入到内

    2024年02月08日
    浏览(58)
  • Spring源码解析——ApplicationContext容器refresh过程

    正文 在之前的博文中我们一直以BeanFactory接口以及它的默认实现类XmlBeanFactory为例进行分析,但是Spring中还提供了另一个接口ApplicationContext,用于扩展BeanFactory中现有的功能。 ApplicationContext和BeanFactory两者都是用于加载Bean的,但是相比之下,ApplicationContext提供了更多的扩展功

    2024年02月08日
    浏览(57)
  • Spark报错:需要 REFRESH TABLE tableName 解决

    今天跑spark sql任务,报了一个错误,如下: It is possible the underlying files have been updated. You can explicitly invalidate the cache in Spark by running ‘REFRESH TABLE tableName’ command in SQL or by recreating the Dataset/DataFrame involved. 查了一些资料,出现这个错误,是因为当你更新了一个表的某些列,并且

    2024年02月11日
    浏览(45)
  • 【细读Spring Boot源码】重中之重refresh()

    版本:spring-boot-2.7.3 | spring-context-5.3.22 在Spring Boot启动过程中【细读Spring Boot源码】启动步骤 主流程详情7中 applicationContext.refresh(); 这个操作是加载或刷新容器,把所有的配置转换成响应的对象并存入容器。 下面看下他的具体执行流程 主流程使用了模板模式是一个模板方法

    2024年02月01日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包