0

我找到了一个好看的表单创建类。但是我需要使用数据库的输出动态地创建表单。表单是这样创建的:

$form->addElement(new Element\Textbox("Name:", "Name", array(
    "required" => 1
)));

所以,如果我想添加不同的表单,我必须更改new Element\Textboxnew Element\Password. 是否可以根据数据库结果创建表单,如下所示:

foreach ($fields as $field) {
$form->addElement(new Element\$field->type("Name:", "Name", array(
    "required" => 1
)));
}

现在它看起来不适合我,当然它不起作用。所以我的问题是,我可以以不同的方式动态地输出这些表单,还是应该检查另一个类?

4

1 回答 1

1

如果 $field->type 是类名的有效字符串,例如“密码”。尝试使用:

foreach ($fields as $field) {
    $className = "\\PFBC\\Element\\{$field->type}";
    $form->addElement(new $className("Name:", "Name", array(
         "required" => 1
    )));
}
于 2013-11-10T14:52:01.917 回答