SfValidatorSchema kullanarak Symfony ile bir tarih doğrulanıyor

1 Cevap php

Ben giriş için bir kullanıcı bir tarih izin aşağıdaki widget kullanarak ediyorum

$this->widgetSchema['first_registration'] = new sfWidgetFormDate(array(
  'format' => '%month%/%year%',
  'years' => range(date('Y', time()) - 15, date('Y', time()) + 15)
));

Bu widget kullanarak bir tarih için varsayılan biçimi% ay% /% gün% / yıl%% ve böylece bu Widget çekler için ne varsayılan denetleyicidir. Ancak, doğrulayıcı değiştirmeye çalıştık ...

$this->validatorSchema['first_registration'] = new sfValidatorDate(array(
  'date_format' => '%month%/%year%',
  'with_time' => false
));

Bu çalışmıyor ve ben hala geçersiz hatası alıyorum. Neden herkes biliyor mu?

1 Cevap

Widget ve validator hala day alanını içerir.

Tüm biçim argümanı yapar görüntülenmesini gün önlemek için - bu hala var ve perde arkasında valide ediliyor. Ben sorunun oluştuğu yerdir bekliyoruz.

Ben kolay düzeltme söz konusu formda bağlama yöntemini sürme üzerinde-by 1 gün varsayılan etmektir tavsiye ederim. Bir şeyler yapıyorsun nasıl emin, ama yerel tarih / saat biçimleri doğru olarak çalışmasını sağlar gibi sık sık, veritabanında bunu ay / yıl tarih ile çalışıyorum değilken - Aynı argüman symfony formlar için geçerlidir.

// untested code - i may have array structure/method signatures incorrect.
function bind($taintedValues = array(), $taintedFiles = array()) {
  $taintedValues['first_registration']['day'] = 1;
  return parent::bind($taintedValues, $taintedFiles);
}

Ayrıca, sfValidatorDate için kayıt gerekli seçenek argüman değil sfWidgetFormDate kullanılan bir biçim olarak bir düzenli ifade alır.