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

Laravelロゴ

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

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

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

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

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

 

図解入門 よくわかる最新 システム開発者のための仕様書の基本と仕組み[第3版]
IT業界のプロジェクトにはさまざまな情報と人が入り込んでいます。それゆえ、プロジェクトの一員からは全体像が掴みにくく、よくわからないまま仕事を進めて失敗に終わってしまうこともあります。本書は、プロジェクトを成功させる仕様書や設計書の作り方、...
PHPフレームワーク Laravel実践開発
アプリケーション開発には、基本のMVC以外の機能実装が非常に重要になります。本書は、既刊『PHPフレームワーク Laravel入門』を読み終わった方に向けて、もっと知りたいという要望の高かったMVC以外の機能実装の手法を解説します。コア機能...
タイトルとURLをコピーしました