[Laravel]更新されたフィールドがあるかどうか判定する

Laravelロゴ

編集フォームで、変更があった場合だけ何かするというような処理はありがちだと思いますが、そういったときに便利な機能があります。

Model::isDirty() メソッド を使うと、変更があったかどうかのBool値を返してくれます。引数にフィールド名を入れると、そのフィールドで更新があったかどうかの確認ができます。

Model::getDirty()メソッド を使うと、変更があったフィールドの一覧を返してくれます。

たとえば、更新日意外のフィールドに変更があるかどうか?みたいな場合はgetDirty()を使うといいかと思います。
また、変更前のオリジナルのデータgetOriginal()メソッドで取得できます。便利ですね!

なお、save()するとフラグがリセットされて変更なし状態になってしまうので注意。(当たり前ですが)

 

https://amzn.to/3agrXhc
Amazon.co.jp
タイトルとURLをコピーしました