2010年1月29日金曜日

Zend_Db_Table_Row::refresh()について

どうも、俺@仕事中@スノボ前です。

今日久しぶりにZend_Framework案件でソース書いてて、抽象クラスZend_Db_Table_Row_Abstractの
protected $_cleanData
protected $_data
って「これわな~に?おいしいの?」と思ってました。

オブジェクトに値をセットしてvar_dump($zend_db_table_row)してみると、両方のフィールドに同じ値がセットされています。
公式にも詳しい説明がなかったのですが、
どうやらこれは、DBからSELECTしてきたデータは「$_creanData」に、後でセットした値が「$_data」に入っているようです。
で、
$zend_db_table_row->refresh()
メソッドを使ってrefresh()すると、$_dataフィールの値がリセットされて$_cleanDataになりました!

つまり、フォームからユーザがデータを入力してエラーチェックした結果、エラーが存在して元に値に戻したいとき、refresh()メソッドで値を元に戻せちゃいます。
なんて便利な!


以上、どえぇぇぇぇす。

0 件のコメント: