在数组字段中显示值管理生成器编辑表单| Symfony 1.4

时间:2014-01-12 22:08:31

标签: symfony-1.4 admin-generator

我有一个属性为“homepages”的类,其中url存储在一个数组中。现在我想创建一个管理表单来编辑这个字段,但是我没有让它显示存储的值或接受为属性添加新值。我得到的只是一个空的表格字段。

使用下面的代码简单地显示部分值很容易,但是如何使用以前存储的所有值来渲染输入字段?

<div class="sf_admin_form_row">
<label>
    <?php echo $form['homepages']->renderLabel('homepages') ?>
</label>
<?php foreach(sfOutputEscaper::unescape($form->getObject()->getHomepages()) as    $key=>$value): ?>
<div class="content"><?php echo $value ?></div>
<?php endforeach ?>
</div>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我要做的是创建嵌入表单的集合或编写我自己的小部件来处理该字段。

如果您尝试使用第一个解决方案,则必须在表单类中反序列化您的属性。然后遍历数组并嵌入一个带有一个输入字段和字段值的简单表单。然后添加一个选项以添加新值(通过嵌入另一个表单)或删除它们。您还必须覆盖表单的保存方法,以便它们正确处理字段(即序列化字段)。

或者,您可以创建一个窗口小部件类,它将正确处理输入集合的显示(再次 - 反序列化值并显示每个URL的输入)。您还必须创建一个验证器类,它将从输入中获取值并将它们序列化。