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

Laravelロゴ

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

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

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

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

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

 

Amazon.co.jp
PHPフレームワーク Laravel実践開発
アプリケーション開発には、基本のMVC以外の機能実装が非常に重要になります。本書は、既刊『PHPフレームワーク Laravel入門』を読み終わった方に向けて、もっと知りたいという要望の高かったMVC以外の機能実装の手法を解説します。コア機能...
タイトルとURLをコピーしました