-1

オブジェクトの属性を編集するためのフォームを作成する必要があります。

先月 symfony を使用しましたが、コントローラーで次のようにする必要がありました。

// retrieve the object $user from the database and then
$this->form = new UserForm($user);

zf 1 で何をすべきですか? コンストラクタを作成しますか?これについて何かがすでに作られていますか?

別の質問: 通常、その操作はどのように呼ばれますか?

4

1 に答える 1

1

ZFでは、UserオブジェクトをモデルにしたZend_Formを作成します。それをユーザーフォームと呼びます。次に、CRUD操作でそのフォームを使用する必要がある場合は、コントローラーからフォームをインスタンス化し、Userオブジェクトを取得してから、そのオブジェクトを使用してフォームの値を入力します。

そのユーザーフォームをコントローラー上でインラインで構築することもできます...$form = new Zend_Form...または、私が通常好むように、Zend_Formを拡張するクラスUser_Formを作成することもできます。フォームの管理と再利用が容易になります。

ここにいくつかのサンプルコードがあります...

User_Formクラスを記述できると仮定すると、ドキュメントでそのすべてを説明する必要があります...名前と名前のテキスト要素がいくつかあるフォームを言いましょう。

コントローラ上で...

$user = new User::Factory(array('id' => 1));

$form = new User_Form('myUserForm');

//keys would be the name of the form elements on the User Form
$formValues = array( 'firstName' => $user->getFirstName(), 
                     'lastName' => $user->getLastName());

$form->populate($formValues);

次に、$ formをビューに渡して、レンダリングします。明らかに、最初のロード/サブミットシナリオを処理するには、コントローラーにさらにロジックを記述する必要があります。これで少なくとも始められることを願っています。渡したオブジェクトからフォームを自動的に生成するものを探している場合は、運が悪いです。

探している単語がわからない。おそらく「インスタンス化」または「宣言」?

于 2012-12-05T19:01:41.737 に答える