当前位置: 首页 > 知识库问答 >
问题:

如何获得laravel 5.1中更新字段的总数?

蒯胜泫
2023-03-14

在对模型及其相关模型执行更新操作后,我需要保存更新的字段数。

假设我有一个用户配置文件编辑表单。在该表单上,我允许用户更新其firtname,lastname,密码。

用户模型有电子邮件和密码字段,其他字段也很少。

UserProfile模型也有名、姓和其他字段。

User模型与具有hasOne关联的UserProfile模型相关联。

有很多,也有很多联系。

如果用户更新了名字和密码,我需要向用户显示“更改的字段数:2”。

有任何Laravel 5方式或包这样做。

谢谢

共有1个答案

伍捷
2023-03-14

您可以像这样使用Eloquent模型的getDirty()方法:

$data = ['email' => 'email@example.com', 'name' => 'John Doe'];
$user = User::find(1);

$user->fill( $data );

if ( !$user->isDirty() ) {
    //NO DATA CHANGED
}

$numberOfChanges = count( $user->getDirty() );

getDirty()将返回一个模型的已更改属性数组,因此当您计算数组的大小时,您将获得已更改字段的确切数量。

请注意,我只使用了用户模型,例如,$data可能来自请求。

 类似资料:
  • 我试图在一个路由上调用一个AJAX请求,该路由在UserController中调用这个函数updateImpression(),这个函数试图增加MySQL中存储的“users”表中名为“impressions\u cpunt”的计数器列。我试着使用Eloquent只更新一个特定用户的列。 我认为save()函数应该首先工作,但是我的数据库没有得到更新并返回原始计数,update()函数甚至没有从函

  • 如何获取字段的“真实”值? 我有一个框,我使用的是较新的HTML5输入类型: 这在Chrome29中得到了支持: (至少在Chrome 29中) 如何获取控件的“原始”值? 我试着浏览了Chrome的输入框的其他属性列表: null

  • 问题内容: 这是一个例子: 如果我有这些课程 在数据库中,我有一位作者名为“ George”,另一位作者名为“ Georfe”。最后一个是错误。因此,我想要的是每本以“ Georfe”为作者之一的书都被作者“ George”代替。 在SQL中确实很容易做到。如果id为“ George” = 3,id为“ Georfe” = 7,并且关系表名称为“ author_book”: 可以使用Django

  • 本文向大家介绍如何在MongoDB中汇总总和以获得总数?,包括了如何在MongoDB中汇总总和以获得总数?的使用技巧和注意事项,需要的朋友参考一下 要在MongoDB中汇总总和以获取总计数,可以使用$sum运算符。要了解上述概念,让我们使用文档创建一个集合- 在method的帮助下显示集合中的所有文档。查询如下- 以下是输出- 这是获取总数的查询。 情况1-查询如下- 以下是输出- 这是在Mong

  • 问题内容: 我有一个包含许多字段的结构-我已经弄清楚了如何使用反射来提取字段名称,值和标签信息。我还想确定一个字段的值是否不同于该字段的默认值。 目前,我有这个(有效,但有点臭): 在我看来,在这种情况下应该有一种避免类型切换的方法-我正在尝试做的是建立一个字段/值映射,其值不同于默认的零值,例如: 是否有一种优雅的方式来实现这一目标? 谢谢! 问题答案: 对于支持相等操作的类型,您可以只比较包含

  • 假设我有一个Foo类和一个jax-rs FooResource,它将API公开给CRUD Foos。 Foo表示MongoDB文档。 在FooResource中,我将有如下内容: 问题是,json中的foo对象将只包含已经更改的字段,但我从来不知道它将是什么字段。 我使用带Panache扩展的Quarkus,我看到的唯一方法是从DB检索实体,然后检查从http请求接收到的foo对象中的每个字段,看