0

我有一个带有父(实体)和子(记录)的表格。父母有很多孩子。到目前为止,一切都很好。

我需要的是,如果我编辑父级,我只想将最新的子级显示为表单集合,而不是全部显示。

现在,随着这样的创建,我只是把它变成这样:

$entity = new WikiEntity();
$record = new WikiRecord();
$entity->addWikiRecord($record);

有了这个,我只有一个表单集合——显然。

现在我正在寻找一种方法,只有最新的记录(子)可以编辑,所有旧的都不应该在那里。

只是说我的目标是什么(也许还有其他解决方案),我想创建一个类似于 wiki 的东西,所以每次编辑父级时都会创建一个新的修订版,这样我就可以获得旧版本或其他东西。所以人们不需要查看所有版本(表单集合的作用),而只需要查看最新版本(每次编辑时都会创建)。

4

2 回答 2

0

好的,我找到了我的问题的答案。

我只是操纵我的getWikiRecords()函数只返回最新的(在父函数中)

所以现在在子实体的父实体中,它看起来像这样:

public function getWikiRecords() {
    $oneRecord = new ArrayCollection();
    $oneRecord[] = $this->wikiRecords->last();
    return $oneRecord;
}

当然,如果我想要所有的孩子,我现在必须使用不同的 get 函数。

于 2013-09-25T13:44:42.130 回答
0

我看到没有选项只能编辑WikiRecordsymfony2 表单集合类型的最新版本。但可以通过在模板中操作表单输出来完成。

所以,这就是我可以使用树枝模板的方法。

{% for record in edit_form.wikiRecord %}
    {% if loop.length > 1 %}
        {% if loop.last %}
            {{ form_label(record.aFieldName) }}
            {{ form_widget(record.aFieldName) }}
        {% else %}
            {{ form_widget(record.aFieldName, { 'attr': {'style': 'display: none'} }) }}
        {% endif %}
    {% else %}
        {{ form_row(record) }}
    {% endif %}
{% endfor %}

我将它用于或多或少类似的情况,我必须只使最新的孩子可编辑。所以,这个变通办法正在奏效。:)

于 2013-09-25T01:15:14.147 回答