2011-10-19 16 views
1

こんにちは私は自分のカスタムzend_formのFile要素に問題があります。コードのthats:カスタムZendフォームデコレータファイルが見つかりません

class Core_Form extends Zend_Form 
{ 


protected $_containerId; 
public function __construct($options = null) { 
    parent::__construct($options); 

    $this->setElementDecorators(array(
     'ViewHelper', 
     array(
      'Description', 
      array(
       'tag' => 'div', 
       'class' => 'submit-button', 
       'escape' => false 
      ) 
     ), 
     array(
      array(
       'data' => 'HtmlTag' 
      ), 
      array(
       'tag' => 'div', 
       'class' => 'element' 
      ) 
     ), 
     array(
      'Label', 
      array(
       'tag' => 'div', 
       'escape' => false 
      ) 
     ), 
     array(
      array(
       'row' => 'HtmlTag' 
      ), 
      array(
       'tag' => 'div', 
       'class' => 'element-row' 
      ), 
     ), 
     'Errors' 
    )); 

    $this->setDecorators(array(
     'FormElements', 
     array(
      'HtmlTag', 
      array(
       'tag' => 'div', 
       'id' => $this->_containerId 
      ) 
     ), 
     'Form', 
     'Errors' 
    )); 
} 
} 
//upload form 
class Upload_Form extends Core_Form 
{ 

public function init() 
{ 
    /* Form Elements & Other Definitions Here ... */ 

    $this->addElement('file', 'uploadFile', array(
     'destination' => APPLICATION_PATH.'/../public/uploads/ads', 
     'validators' => array(
      array('count', false, 1), 
      array('size', false, 102400), 
     ), 
     'label' => 'Wyślij plik:' 
    )); 

    $this->addElement('image', 'submit', array(
     'label' => false, 
     'ignore' => true, 
     'src' => $this->getView()->baseUrl('images/send.jpg') 
    )); 

    $this->setEnctype('multipart/form-data'); 
} 

} 

私はこのエラーを取得: 警告:フォームでキャッチ例外:いいえ、ファイルデコレータが見つかりました...私は 'に要素のデコレータで私なViewHelperを変更すると、ファイル要素

をレンダリングすることができませんファイル」私はこのエラーを取得: 警告:フォームでキャッチ例外:メソッドgetMaxFileSizeは、スタックトレースを存在しません:#0 [内部関数]:Zend_Form_Elementに - > __コール( 『getMaxFileSize』、アレイ)

は、事前にありがとうあなたの助け

答えて

2

File要素に別のデコレータセットを設定する必要があります。'File'デコレータを使用する必要があります。 How do I use ViewScripts on Zend_Form File Elements?

希望助け、答えを

+0

こんにちは感謝:

現在地非常によく似た質問を参照することができます!はい、それは私にそれを動作させる可能性を与えますが、正確には私はこの問題を解決したい...私はCore_Formの定義で私のデコレータを設定したい...私は毎回 'アップロード'要素とsetdecoratorsを取得する必要があります...オリジナルのZend_Formのようなたびに動作するように、ベースコアのフォーム定義でデコレータを設定する方法はありますか? – JokerDark2

+0

フォームを追加した後、フォームのすべての要素をループするだけで、要素の種類に応じてデコレータの種類を選択できます。それは不自然な解決策ではありません。 – dinopmi

関連する問題