« アスペクト比 一覧 | メイン | Yahoo!プレミアム会員費 最大6か月分無料! »

ethna

FORM_TYPE_FILE(Ethna)のコツ

アプリケーションで使用するフォームパラメータを 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',
        ),
            :

トラックバック

このエントリーのトラックバックURL:
http://www.remix.asia/cgi/mt/mt-tb.cgi/7117

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)