0

私はdbテーブルを持っており、リンクされたテーブル「サイト」が最初に定義され、2番目に「サイト」を指す1から多数の値を追加できます。ユーザーは、リンクされたデータを含むフォームで「サイト」フィールドを開き、フィールドに表示して値を編集できます。

たとえば、「Site One」には 1 つの関連フィールドがあります。

「サイト 2」には 3 つの関連フィールドがあります。

「サイト 3」には 2 つの関連フィールドがあります。等。

手動でクランキングする場合は、データを読み込んで追加のフィールドを作成するだけですが、事前にフィールドの数を知りたがっているように見える Zend_Form で構築しています。scripts ディレクトリに _form_xxx.phtml があるモデル ディレクトリにあるモデルを使用しています (部分的なものですか?)。

私はZendに慣れておらず、少し自分のやり方を感じているので、そうでなければphpとphtmlを書き直さなければならないように見えるので、Zend_Formでこれを行う方法はありますか?

Zend_Form_SubForm のサブフォームは進むべき道ですか?

Zend は柔軟であるため、最悪の場合、コンポーネントを普通の方法で記述できると思いますが、可能であればフレームワークでツールを使用したいと考えています。

4

1 に答える 1

0

Zend_Form は静的であるべきだと考える理由は何ですか? 必要に応じて、実行時にフォーム内にフィールドを動的に作成できます。動的フォーム要素を追加するロジックをフォーム クラス (Zend_Form を拡張する) のコンストラクタに入れるだけです。

すなわち。

class YourSplendidForm extends Zend_Form
{
    public function __construct($options = null, $yourParams)
    {
        parent::__construct($options);

        $this->setName('your_form_name');
        $this->setAction('/your/form/action/');

        // Add your fields here using addElement - or create a subform and add fields to that one and use addSubForm to add the subform


    }
}

次に、フォーム インスタンスを (コントローラーから) ビューに渡し、必要に応じて処理します (必要に応じて、単純な<?php echo $this->form; ?>レンダリングまたはカスタム レンダリングのいずれかを使用します)。

于 2011-05-24T14:44:47.053 に答える