SilverStripe PHP表单-如果将SelectionGroup嵌套在FieldGroup中,则不会显示相关的SelectionGroup_Items的单选框之一。为什么?


122

我有一个带有两个FieldGroups 的表格,而在一个其中FieldGroup有一个SelectionGroup

SelectionGroup_ItemS IN的形式显示出来FieldGroup,但单选按钮来选择的选项不显示的。如果我将FieldGroup其删除,则可以再次使用。

我查看了框架模板,如果将其更改为FieldGroup_holder.ss SmallFieldHolderFieldHolder则单选框会再次出现并正常工作。我尝试按照模板进行操作,以查看哪个模板不遵循模板,SelectionGroup但我一直迷路。

这是一些示例代码

$fields = FieldList::create(
    FieldGroup::create(
        TextField::create('Name', 'Name')
    ),
    FieldGroup::create(
        SelectionGroup::create(
            'Test1or2',
            array(
                SelectionGroup_Item::create(
                    'Test1', array(
                        TextField::create('Test1', 'Test1')
                    ),
                    'Test1'
                ),
                SelectionGroup_Item::create(
                    'Test2', array(
                        TextField::create('Test2', 'Test2')
                    ),
                    'Test2'
                )
            )
        )
    )
),
FieldList::create(
    FormAction::create('submit', 'Submit')
)

6
似乎SelectionGroup没有SelectionGroup_small.ss嵌套字段时使用的模板。只需在您的主题中创建它并进行修改即可。也可能值得在github
wmk

1
@wmk运气不好。我还能做些什么来使其正常运作?
Rudiger


1
这不是一个好问题,而且我不知道它如何获得57个投票,尤其是考虑到观看次数较少的情况下,但是我想它并没有因此而去。您的问题在于生成的HTML,但是您没有提供它,也没有提供所需的HTML输出的示例。您的代码示例在语法上是无效的,并且没有提供有关使用位置的上下文。如果您以某种方式解决了该问题,则应该发布答案;如果问题不再相关或不可复制,则应删除该问题。
miken32 '19

6
@ miken32专门用于SilverStripe框架(因此带有标记),并且一个错误已发布在GitHub存储库中(在评论中链接)。没有html的原因是给定功能没有html模板,即bug。除了最后一个半冒号外,我不知道您在说什么在语法上是无效的。任何熟悉框架的人都会知道它的上下文。它仍然是一个开放的错误,并且易于复制。
Rudiger

Answers:


1

您可以添加另一个字段集,然后将其属性设置为id="hidden_field" aria-hidden="true"。在css文档中,您可以执行以下操作。

    #hidden_field{
        display:none;
        height:0;
        width:0;
        margin:0;
        padding:0;
        visibility: hidden;
    }

这应该隐藏SilverStripe Framework的查询行为。在我自己的php表单中,每当有人以不同的部件ID号多次提交新表单时,都会出现随机括号。我使用这种方法来隐藏网站上的随机括号。


@Rudiger这段代码是否可以解决SilverStripe框架的错误?
JTS
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.