アプリケーションで使用するフォームパラメータを APPID_ActionForm の $form_template にまとめて記述しておけば各アクションで必要最小限の記述に省略可能。
APPID/app/action/Action1.php
var $form = array(
:
'parameter1' => array(),
'parameter2' => array(
'required' => true,
),
'parameter3' => array(),
:
ただし、FORM_TYPE_FILE では注意が必要。次のように
APPID_ActionForm
var $form_template = array(
:
'file' => array(
'type' => VAR_TYPE_FILE,
'form_type' => FORM_TYPE_FILE,
'name' => '画像ファイル',
'file_type' => 'image/jpeg',
'file_size_max' => '1MB',
),
:
file_type や file_size_max を指定すると、エラーなどでファイルアップロードするフォームへ遷移する可能性があるアクションで
APPID/app/action/Action1.php
var $form = array(
:
'file' => array(),
:
と省略し $this->af->validate() すると、漏れなくチェックされる為 "invalid tmp_name."、"tmp_nameが不正です。"、"Invalid file type."、"ファイルタイプが正しくありません。"となってしまう。正解は▼
APPID_ActionForm
var $form_template = array(
:
'file' => array(
'type' => VAR_TYPE_FILE,
'form_type' => FORM_TYPE_FILE,
'name' => 画像'ファイル',
),
:
これで、省略記述
APPID/app/action/Action1.php
var $form = array(
:
'file' => array(),
:
がうまくいく。ファイルアップロードするアクションでは必要なチェック項目を追記する。
APPID/app/action/Action1.php
var $form = array(
:
'file' => array(
'required' => true,
'file_type' => 'image/jpeg',
'file_size_max' => '1MB',
),
: