2016-06-30 50 views
2

我需要保存對模型及其相關模型執行更新操作後更新的字段數。如何獲取laravel 5.1中更新字段的總數?

假設我有一個用戶配置文件編輯表單。在該表單上,我允許用戶更新其firtname,lastname,password。

用戶模型還包含電子郵件和密碼字段以及其他一些字段。

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

用戶模型與具有hasOne關聯的UserProfiles模型相關聯。

有一些ManyToMany和hasMany協會以及。

如果用戶更新名字和密碼,我需要向用戶顯示「已更改字段數:2」。

有沒有Laravel 5的方法或軟件包可以這樣做。

謝謝。

回答

2

可以使用getDirty()雄辯模型這樣的方法:)

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

$user->fill($data); 

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

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

getDirty(將返回模型的改變性質的數組,所以當你數數組的大小可以確切地說有多少個字段發生了變化。

請注意,我只使用了用戶模型,例如$data可能來自請求。