SilverStripe PHPフォーム-FieldGroup内にSelectionGroupをネストすると、関連するSelectionGroup_Itemsのラジオボックスの1つが表示されません。どうして?


122

2つFieldGroupのを含むフォームがあり、1つFieldGroupのにはがありSelectionGroupます。

SelectionGroup_Itemsがフォームに表示FieldGroupできますが、無線ボックスは表示されませんオプションの1つを選択します。それを削除する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 2017


1
これは素晴らしい質問ではありません。特に視聴回数が少ないことを考えると、57回の賛成投票がどのようにして得られたのかはわかりませんが、それが原因でどこにも行かないと思います。問題は生成されたHTMLにありますが、それを提供しないか、必要なHTML出力の例を提供します。コードサンプルは構文的に無効であり、使用場所に関するコンテキストは提供されていません。どういうわけかこれを解決した場合は、答えを投稿する必要があります。問題の関連性や再現性がなくなった場合は、質問を削除してください。
miken32

6
@ miken32これは、SilverStripeフレームワーク(特にタグ)を使用して行うものであり、GitHubリポジトリにバグが投稿されています(コメントにリンクされています)。htmlがない理由は、指定された関数のhtmlテンプレートがないためです。それがバグです。最後のセミコロンの他に、構文的に無効であることについて何を言っているのかわかりません。フレームワークに精通している人なら誰でも、そのコンテキストを知っています。それはまだ未解決のバグであり、簡単に再現可能です。
Rudiger

回答:


1

別のフィールドセットを追加して、その属性をに設定できますid="hidden_field" aria-hidden="true"。CSSドキュメントでは、次の操作を実行できます。

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

これにより、SilverStripeフレームワークのクエリ動作が非表示になります。私自身のphpフォームでは、誰かが新しいフォームを異なるpart-id番号で何度も送信するたびに、ランダムな角括弧が表示されていました。このアプローチを使用して、サイトのランダムなブラケットを非表示にしました。


@RudigerこのコードはSilverStripeフレームワークのバグを回避するために機能しましたか?
JTS、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.