SilverStripe PHP Forms - Bir SelectionGroup'u bir FieldGroup içine yerleştirirsem, ilgili SelectionGroup_Items'in Radio Box'larından biri görünmüyor. Neden?


122

İki tane FieldGroups olan bir FieldGroupformum var ve s'lerden birinde a var SelectionGroup.

SelectionGroup_ItemLer şeklinde göstermek FieldGroupancak radyo kutuları göstermez seçeneklerden birini seçin. Ben kaldırırsanız FieldGroupo zaman tekrar çalışır.

Ben çerçeve şablonları baktım ve ben değiştirirseniz ettik FieldGroup_holder.ss SmallFieldHolderiçin FieldHolderradyo kutuları doğru tekrar ve çalışma görünür. Hangisinin uymadığını görmek için şablonları izlemeyi denedim SelectionGroupama kaybolmaya devam ediyorum.

İşte örnek bir kod parçası

$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
Görünüşe göre SelectionGroup, SelectionGroup_small.ssalanları iç içe geçirdiğinizde kullanılan bir şablona sahip değil . Sadece temanızda oluşturun ve değiştirin. Ayrıca değerinde bir soru sorarak olabilir github
WMK

1
@wmk bunda pek şansım yok. Çalışması için yapabileceğim başka bir şey var mı?
Rudiger


1
Bu harika bir soru değil ve 57 olumlu oyu nasıl aldı bilmiyorum, özellikle de düşük izlenme sayısı göz önüne alındığında, ama sanırım bu yüzden hiçbir yere gitmiyor. Sorununuz oluşturulan HTML ile ilgili, ancak bunu sağlamıyorsunuz veya istenen HTML çıktısının bir örneğini sağlamıyorsunuz. Kod örneğiniz sözdizimsel olarak geçersiz ve nerede kullanıldığına dair herhangi bir bağlam sağlanmadı. Bunu bir şekilde çözdüyseniz, bir cevap göndermelisiniz; sorun artık alakalı veya tekrarlanabilir değilse soruyu silmelisiniz.
miken32

6
@ miken32, özellikle SilverStripe çerçevesi (dolayısıyla etiket) ile ilgilidir ve GitHub deposunda bir hata yayınlanmıştır (yorumlarda bağlantılıdır). Html olmamasının nedeni, verilen işlevler için html şablonu olmamasıdır, bu hatadır. Sonunda noktalı virgül dışında, sözdizimsel olarak geçersiz olduğundan neden bahsettiğiniz hakkında hiçbir fikrim yok. Çerçeveye aşina olan herkes onun bağlamını bilecektir. Hala açık bir hatadır ve kolayca tekrarlanabilir.
Rudiger

Yanıtlar:


1

Başka bir alan kümesi ekleyebilir ve ardından özniteliklerini olarak ayarlayabilirsiniz id="hidden_field" aria-hidden="true". Css belgesinde aşağıdakileri yapabilirsiniz.

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

Bu, SilverStripe Framework'ün sorgu davranışını gizlemelidir. Kendi php formlarımda, birisi farklı parça kimliği numaraları altında defalarca yeni bir form gönderdiğinde ortaya çıkan rastgele parantezler vardı. Bu yaklaşımı sitemdeki rastgele parantezleri gizlemek için kullandım.


@Rudiger bu kod SilverStripe çerçevesinin hatasını aşmak için çalıştı mı?
JTS
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.