アップロードファイルの拡張子のチェックをしようと思っています。ファイルが選択された場合のみチェックをし、未選択の場合はバリデーションが引っかからないようにしたいです。
公式ホームページにあるように書いたのですがファイルが未選択の場合にもバリデーションがかかってしまいます。'allowEmpty' => true が動いていないのですが解決法をご教授いただきたいです。
試しにtitleなどの文字列にも'allowEmpty' => trueを使ってみたところ正しく動作しました。
使い方が間違っているのでしょうか?
発生している問題・エラーメッセージ
バリデーションがかかってしまう
該当のソースコード
//バリデーション public $validate = array( 'image'=>array( 'extension' => array( 'rule' => array('extension',array('jpg','jpeg','gif','png')), 'message' => '画像ではありません。', 'allowEmpty' => true, ), ), );
試したこと
public $validate = array(
'image' => array(
'rule' => array('extension',array('jpg','jpeg','gif','png')),
'message' => '画像ではありません。',
'allowEmpty' => true,
),
);
補足情報(FW/ツールのバージョンなど)
文字列であれば以下のソースで上手くできました。ファイルアップロードは上手くできません。
'title' => array(
'notEmpty' => array(
'rule' => array('minLength', 8),
'message' => 'タイトルを入力してください。',
'allowEmpty' => true,
),
),
補足情報にはならないかもしれませんが、フォームから受けっとている情報は以下です。
'image' => array(
'name' => '',
'type' => '',
'tmp_name' => '',
'error' => (int) 4,
'size' => (int) 0
),
あなたの回答
tips
プレビュー