とある技術者の備忘録的情報

EC-CUBE フォームでDBに保存しない場合

よくフォームで記入するけれども、その記入されたデータを加工したものをDBに保存、加工元のデータはDBに保存せず破棄。ということがよくあると思う。

これをEC-CUBEで実行するには、下記のようにファイルを変更すればよい。

顧客登録フォームの場合、変更するファイルは、
SC_Helper_Customer.php

例えば、下記のように年と月と日を別個に入力し、あとでがっちゃんこして日付データにする場合、
このままだと、年や月や日、それぞれがDBのテーブルに項目として存在しないとエラーになる。

$objFormParam->addParam('年', 'year', 4, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
$objFormParam->addParam('月', 'month', 2, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));
$objFormParam->addParam('日', 'day', 2, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'));

こういう場合、下記のように、パラメータとして”false”を指定し、年や月や日はDBに保存しない設定とすればよい。

$objFormParam->addParam('年', 'year', 4, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
$objFormParam->addParam('月', 'month', 2, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);
$objFormParam->addParam('日', 'day', 2, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK'), '', false);

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

スポンサードリンク