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

Php 如何获得laravel 5.1中更新字段的总数?,php,laravel-5.1,Php,Laravel 5.1,我需要保存对模型及其相关模型执行更新操作后更新的字段数 假设我有一个用户配置文件编辑表单。在该表单上,我允许用户更新其firtname、lastname和密码 用户模型有电子邮件和密码字段,其他字段也很少 UserProfile模型也有firstname、lastname和其他字段 用户模型与具有一个关联的UserProfiles模型相关联 有很多,也有很多联系 如果用户更新了名字和密码,我需要向用户显示“更改的字段数:2” 是否有任何Laravel 5方式或套餐可以这样做 谢谢。您可以使用雄辩

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

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

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

UserProfile模型也有firstname、lastname和其他字段

用户模型与具有一个关联的UserProfiles模型相关联

有很多,也有很多联系

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

是否有任何Laravel 5方式或套餐可以这样做


谢谢。

您可以使用雄辩模型的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
可能来自请求