用于编辑对象的表单

时间:2012-12-05 17:45:30

标签: zend-framework

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

我最近几个月使用过symfony,我必须在控制器中这样做:

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

我应该在zf 1中做什么?创建一个构造函数?是不是已经有了这个呢?

另一个问题:通常如何称之为操作?

1 个答案:

答案 0 :(得分: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传递给视图并渲染它。显然,需要在控制器上编写更多逻辑来处理第一个加载/提交方案。希望这至少让你开始。如果您正在寻找从您传递的对象自动生成表单的内容,那么您就没有运气了。

不确定您要搜索的是哪个字词。也许'实例化'或'声明'?