0

以下のようなフォーム要素を作成する最初の方法 -

*コントローラー内

    $email = new Zend_Form_Element_Text('email');

    $email->setLabel('Email address')

          ->addFilter('StringToLower')

          ->setRequired(true)

          ->addValidator('NotEmpty', true)

          ->addValidator('EmailAddress'); 

以下のようなフォーム要素を作成する 2 番目の方法 -

*ビューで

echo $this->formText('email',$this->data['email'],array('size'=>'20', 'class'=>'input_min_max'));

addFilter、addValidatorなどを追加するなど、1番目の方法と同じように2番目の方法で要素を作成することは可能ですか? 要素の直前にラベルを追加したため、setLabel は必要ありません。

4

3 に答える 3

0

2番目のメソッドでは要素を作成できないと確信していますが、ファクタリングによって要素を作成する別の方法があります。あなたの場合は、次のことができます。

$formText = createElement('email',$this->data['email'],array('size'=>'20', 'class'=>'input_min_max)->setRequired(true)->addValidator('whatever');

これがあなたの質問に答えることを願っています。

于 2012-09-24T12:58:13.660 に答える
0

はい、可能です。ビューでこのコードを実行できます。

$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email address')
      ->addFilter('StringToLower')
      ->setRequired(true)
      ->addValidator('NotEmpty', true)
      ->addValidator('EmailAddress'); 

しかし、MVCパターンに違反しているため、そうすべきではありません。あるいは、あなたがやりたいことをもっとよく説明できるかもしれません...多分私は理解していませんでした...

于 2012-09-24T12:55:34.517 に答える
0

ビューにフォーム要素を挿入する理由がわかりません。これがスタイリング用の場合は、ビュー スクリプトをデコレータとして使用できます。

フォーム :

 $email = new Zend_Form_Element_Text('email');

 $email->setLabel('Email address')

      ->addFilter('StringToLower')

      ->setRequired(true)

      ->addValidator('NotEmpty', true)
      -> setDecorators(array(array('ViewScript', array('viewScript' => 'index/myform.phtml'))))

      ->addValidator('EmailAddress');

これにより、要素を装飾するためのビュー スクリプト「myform.phtml」が呼び出され、その中に要素を装飾するための残りのマークアップを追加できます。

于 2012-10-08T19:49:33.417 に答える