CakePHPでデータをデフォルト値に戻す ITかあさん

ITかあさん

CakePHPでデータをデフォルト値に戻す

CakePHPでデータをデフォルト値に戻す

CakePHPのapp_controller.phpのbeforeFilterでModelを使う
MysqlやPostgreSQLなんかのデータベースでデータのデフォルト値を設定しているケース、あると思います。

このデフォルト値を設定しているデータ、削除というていで、デフォルト値に戻したい、というのが今回の問題。

これをSQLでやる時は

Mysql

UPDATE personal SET total = DEFAULT(total);

CakePHPだとして、クエリー投げてもいいんだけどCakePHPチックに出来ないものかな~と考えていたら、出来ましたよ

CakePHP

function default($id = NULL){
$this->Model->id = $id;
$this->data = $this->Model->read();
$this->Model->saveField('your_field_name', DboSource::expression('DEFAULT(your_field_name)'));
}

ただこれ、クエリーで投げちゃったほうがシンプルですね。でも書き方がCakePHPのデータ変更の基本的なやり方とほぼ一緒なので、
何かのデータ変更の時のついでとかにナイス。今後もたまに使います。

初夏のJavaScript祭 in サーキュレーションビル ForPro