【问题标题】:Display values in array field | admin generator edit form | Symfony 1.4在数组字段中显示值 |管理员生成器编辑表单 | Symfony 1.4
【发布时间】:2014-01-12 22:08:30
【问题描述】:

我有一个具有“主页”属性的类,其中 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>

任何帮助将不胜感激。

【问题讨论】:

  • 我不确定我是否理解正确,但我认为您正在寻找选择小部件 (sfWidgetFormChoice)。它可以为一组值呈现一个选择标签或一组单选/复选框。
  • 这不是我的意思。属性“主页”在数据库中存储了一个序列化数组(教义数组),这意味着我需要编辑数组,从中删除值或添加新值。
  • 所以你想制作一个模块来添加/编辑/删除url数组?
  • 好吧,我有一个模块,其中 urls 字段是许多属性之一,并且 url 存储在数组中。我通过管理员生成器创建了它。但是,是的,我希望能够在该数组中添加/编辑/删除 url。
  • 好的。现在我想我对它的理解更好了。请参阅下面的答案。

标签: symfony-1.4 admin-generator


【解决方案1】:

我会尝试创建一组嵌入式表单或编写自己的小部件来处理该字段。

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

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

【讨论】:

    猜你喜欢
    • 2011-05-26
    • 2011-06-07
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多