2016-06-30 2 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()は、モデルの変更されたプロパティの配列を返しますが、配列のサイズには、変更されたフィールドの数が正確に表示されます。

私はUserモデルのみを使用していましたが、$dataはおそらくリクエストに由来することに注意してください。

関連する問題