-1

我需要创建一个显示对象属性的表单来编辑它们。

上个月我使用了 symfony,我不得不在控制器中这样做:

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

我应该在 zf 1 中做什么?创建一个构造函数?是否已经对此有所了解?

另一个问题:通常如何调用该操作?

4

1 回答 1

1

在 ZF 中,您将构建一个Zend_Form,它以您的 User 对象为模型。称之为用户表单。然后,当您需要在 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 回答