DEVELOPERS BLOGデベロッパーズブログ

  1. HOME > 
  2. 加藤 正人 > 
  3. タイトル

CakePHP3 のミューテータで書き換えたデータが保存されない件

2018/10/01

CakePHP3 のミューテータで書き換えたデータが保存されない件

 

CakePHP 3.x では Virtual Field が無くなって、データの加工には読み出し用には accessor、書き込み用には mutator が用意された。

例えばフォームでは姓と名が別フィールドだがデータベースのレコードはフルネームで保存するような場合に mutator で姓フィールドと名フィールドを結合してフルネーム欄に格納するようなことができる。

ただし、ただ結合してエンティティに書き込んだだけでは変更フラグ (dirty フラグ) が設定されず、save() を実行しても保存されない。

そのような場合は当該 mutator メソッド内で setDirty() をしてやることで save() 時に正しく保存されるようになる。

この記事は加藤 正人さんが書いています!

加藤 正人

氏名
加藤 正人
役職
多分SE
血液型
秘密
出没
美味しいもののあるところ
特色
タヒチ大好き。ちょいメタボ。