SilverStripe PHP Forms - Jika saya menumpuk SelectionGroup di dalam FieldGroup, salah satu Radio Box SelectionGroup_Items terkait tidak muncul. Mengapa?

122

Saya memiliki formulir yang memiliki dua FieldGroup, dan di salah satunya FieldGroupsaya punya SelectionGroup.

The SelectionGroup_Items muncul dalam bentuk FieldGrouptapi kotak radio untuk memilih salah satu opsi tidak menunjukkan. Jika saya menghapusnya FieldGroupkemudian bekerja lagi.

Saya telah melihat template kerangka kerja, dan jika saya mengubah FieldGroup_holder.ss SmallFieldHolderke FieldHolderkotak radio muncul lagi dan bekerja dengan benar. Saya sudah mencoba mengikuti template untuk melihat mana yang tidak mematuhi SelectionGrouptapi saya terus tersesat.

Berikut ini contoh sedikit kode

$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')
)
Rudiger
sumber
6
Sepertinya SelectionGroup tidak memiliki SelectionGroup_small.sstemplat yang digunakan saat Anda menyusun bidang. Buat saja di tema Anda dan modifikasi. Mungkin juga layak untuk mengangkat masalah di github
wmk
1
@wmk tidak terlalu beruntung dengan itu. Ada lagi yang bisa saya lakukan untuk membuatnya berhasil?
Rudiger
1
Saya juga telah menambahkan masalah git github.com/silverstripe/silverstripe-framework/issues/6637
Rudiger
1
Ini bukan pertanyaan yang bagus, dan saya tidak tahu bagaimana ini mendapatkan 57 suara positif, terutama mengingat jumlah penayangan yang rendah, tapi saya rasa itu tidak akan berhasil karena itu. Masalah Anda adalah dengan HTML yang dihasilkan, tetapi Anda tidak memberikannya, atau memberikan contoh keluaran HTML yang diinginkan. Sampel kode Anda secara sintaksis tidak valid, dan tidak ada konteks yang diberikan tentang tempat penggunaannya. Jika Anda menyelesaikan masalah ini, Anda harus memposting jawaban; jika masalah tidak lagi relevan atau tidak dapat direkonstruksi, Anda harus menghapus pertanyaan tersebut.
miken32
6
@ miken32 ini berkaitan secara khusus dengan kerangka SilverStripe (karenanya tag) dan bug telah diposting di repositori GitHub (ditautkan di komentar). Alasan tidak ada html adalah karena tidak ada template html untuk fungsi yang diberikan, yaitu bug. Selain titik koma di bagian akhir, saya tidak tahu apa yang Anda bicarakan itu tidak valid secara sintaksis. Siapapun yang akrab dengan kerangka kerja akan mengetahui konteksnya. Ini masih bug terbuka dan mudah direproduksi.
Rudiger

Jawaban:

1

Anda bisa menambahkan fieldset lain lalu mengatur atributnya ke id="hidden_field" aria-hidden="true" . Dalam dokumen css Anda dapat melakukan hal berikut.

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

Ini harus menyembunyikan perilaku kueri SilverStripe Framework. Dalam formulir php saya sendiri, saya memiliki tanda kurung acak yang muncul setiap kali seseorang mengirimkan formulir baru berkali-kali dengan nomor bagian-id yang berbeda. Saya menggunakan pendekatan ini untuk menyembunyikan tanda kurung acak di situs saya.

JTS
sumber
@ Rudiger apakah kode ini berfungsi untuk mengatasi bug kerangka SilverStripe?
JTS