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

Laravelロゴ

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

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

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

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

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

 

図解入門 よくわかる最新 システム開発者のための仕様書の基本と仕組み[第3版]
Amazonで増田智明の図解入門 よくわかる最新 システム開発者のための仕様書の基本と仕組み。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォンやタブレットなど、様々な端末でもお楽...
Amazon.co.jp
タイトルとURLをコピーしました