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』、アレイ)
は、事前にありがとうあなたの助け
こんにちは感謝:
現在地非常によく似た質問を参照することができます!はい、それは私にそれを動作させる可能性を与えますが、正確には私はこの問題を解決したい...私はCore_Formの定義で私のデコレータを設定したい...私は毎回 'アップロード'要素とsetdecoratorsを取得する必要があります...オリジナルのZend_Formのようなたびに動作するように、ベースコアのフォーム定義でデコレータを設定する方法はありますか? – JokerDark2
フォームを追加した後、フォームのすべての要素をループするだけで、要素の種類に応じてデコレータの種類を選択できます。それは不自然な解決策ではありません。 – dinopmi