Symfony 2 FormBuilder'da yalnızca yıl seçici widget'lı bir tarih girişi alanı yapmak mümkün mü yoksa basit bir metin türü giriş alanı kullanmalı mıyım?Symfony Sadece yıl seçicili 2 tarih girişi
cevap
Sen form customization kullanabilirsiniz:
{% block date_widget %}
{% spaceless %}
{% if widget == 'single_text' %}
{{ block('field_widget') }}
{% else %}
<div {{ block('widget_container_attributes') }}>
{{ date_pattern|replace({
'{{ year }}': form_widget(form.year),
'{{ month }}': '',
'{{ day }}': '',
})|raw }}
</div>
{% endif %}
{% endspaceless %}
{% endblock date_widget %}
Bu yaklaşım bana veriyordu hataları doğrulama ile:
{{ date_pattern|replace({
'{{ year }}': form_widget(form.year),
'{{ month }}': '',
'{{ day }}': '',
})|raw }}
Ben css ekleyerek sorunu çözüldü finallay öznitelikleri alanları gizlemek için:
{{ date_pattern|replace({
'{{ year }}': form_widget(form.year),
'{{ month }}': form_widget(form.month, { 'attr' : { 'style': 'display:none' }}),
'{{ day }}': form_widget(form.day, { 'attr' : { 'style': 'display:none' }}),
})|raw }}
Ben tam olarak aynı şeyi yapmak istiyorum. Lütfen bana nasıl yaptığını açıklar mısınız ?, Bu ** hata var **: 'Twig_Error_Runtime: Değişken" date_widget "mevcut değil – Sam
Günümü kurtardın! Teşekkürler. (Neden düzeltiyor?) ps. En iyi cevap [burada] (http://stackoverflow.com/questions/10125517/how-to-display-a-month-year-dropdown-in-symfony2/22612012#22612012) – mario
Tarih alanı kesmek yerine seçim alanı türünü kullanmak daha iyidir alan türü veya sadece metin alanı türünü kullanma.
Birkaç temel php tarih/saat işlevini kullanarak, ihtiyacınız olanı elde edersiniz. FormType olarak
:
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('yearfield', 'choice',
array(
'required' => true, 'choices' => $this->buildYearChoices()
));
}
public function buildYearChoices() {
$distance = 5;
$yearsBefore = date('Y', mktime(0, 0, 0, date("m"), date("d"), date("Y") - $distance));
$yearsAfter = date('Y', mktime(0, 0, 0, date("m"), date("d"), date("Y") + $distance));
return array_combine(range($yearsBefore, $yearsAfter), range($yearsBefore, $yearsAfter));
}
Daha basit bir yöntem elde etmek, örneğin, bir seçim türü ile yıllık beş yıllık aralığı,: is
'choices' => array(
Date('Y') => Date('Y'),
Date('Y') - 1 => Date('Y') - 1,
Date('Y') - 2 => Date('Y') - 2,
Date('Y') - 3 => Date('Y') - 3,
Date('Y') - 4 => Date('Y') - 4,
)
Not döndürür bir dizi oluşturur seçilen yıl.
da kullanabilirsiniz:
{{ form_row(form.fieldName, {'date_pattern': '<span style="display: none;">{{ day }}{{ month }}</span>{{ year }}'}) }}
:
'choices' => range(Date('Y') - 4, date('Y'))
Ben Sen date_pattern 'geçersiz kılabilir
->add('yearfield', 'datetime', array(
'widget' => 'single_text',
'format' => 'yyyy'
))
bu şekilde ve veritabanında ekleme doğrudur benim kod yazdım NOT! Alanları display: none
ile gizle, Doğrulamayı geçmek için bunları kaldırmayın. Burada bu cevap dışarı
Kontrol:
How to display a month-year dropdown in Symfony2 Sadece farklı date_widget bloğu (dal) kullanın.
- 1. symfony olarak Symfony 2
- 2. Symfony 2 veya Symfony 1.4?
- 3. VB.NET Gönderen Sadece Yıl Bir Yıl Var
- 4. 2 basamaklı yıl ile kültüre özgü bir tarih al C#
- 5. Tarih ve saat girişi
- 6. Symfony 2 + Doktrin 2 + kalıtım
- 7. Ay-Yıl çubuk grafiği grafiği, yıl boyunca yüzdendi ve dolduruldu; Char formatında tarih olarak veri girişi ile
- 8. symfony 2 php
- 9. Symfony 2 onDelete setNull
- 10. Symfony 2 Öğe görüntüleri
- 11. Sanal konaklarda Symfony 2
- 12. Excel VBA - Eşdeğer Önceki Yıl Tarih
- 13. Symfony 2'de ViewHelper oluştur
- 14. Tarih, gün, ay ve yıl artışını Javascript
- 15. Oturumları nesnelerde saklayın Symfony 2
- 16. Symfony 2'de Eşit Alanlar doğrulaması 2
- 17. Ayıklama Tarih, ay ve yıl tarih saatine göre ay
- 18. tarih ve yıl ile sürekli 7 tarih nasıl edinilir
- 19. R Yıl içinde tarih farkı (kayan nokta)
- 20. 6 yıl önce bir tarih olsun?
- 21. Symfony 2 Koleksiyonumu Nasıl Kaydederim?
- 22. symfony 2 adet ürün bulunmamaktadir.
- 23. Symfony 2 OneToMany performans optimizasyonu
- 24. DatePicker, Yıl
- 25. Symfony 2 SecurityBundle ile Symfony 1.4 sfGuardUser tablolarını kullanma?
- 26. Bir tarih 2 tarih içinde olmasa da, tarih, tarih olana kadar 2 tarihi artırın. Swift
- 27. iOS'ta DatePicker kullanarak sadece Ay ve Yıl nasıl kabul edilir
- 28. Yinelenen bir tablodaki tarihlerden sadece yıl bölümünü seçin
- 29. Açısal 2 Tarih atması
- 30. Symfony 2 basic GET formu oluşturulan URL
Yardımlarınız için teşekkürler! – szilagyif
Bu, sorunu çözen ancak soruyu cevaplamayan bir hackten ibarettir. Bunu FormBuilder ile nasıl yapıyorsunuz? – Acyra