Azt szeretném elérni hogy amikor kiválaszják az évet,hónapot,napot akkor a rules ellenőrizze le hogy helyes e a dátum, ha nem akkor a nap alá meg írja hogy Helytelen dátum.
Elvileg ezzel azt kellene csinálnia hogy ha megváltozik a bármelyik mező akkor lefutatja a Checkdate függvényt.
public function rules()
{
return array(
array('born_year_id,born_month_id,born_day_id', 'numerical', 'integerOnly'=>true),
array('born_year_id,born_month_id,born_day_id', 'Checkdate'),
);
}
Ez maga a Checkdate függvény
public function Checkdate($attribute,$params)
{
if(!checkdate($this->born_month_id,$this->born_day_id,$this->born_year_id)){
$this->addError('born_day_id','Helytelen dátum!.');
}
}
Nem igazán értem miért van erre szükség, vagy hogy pontosan mit szeretnél. Eleve a dropDownList-et nyilván csak olyan adatokkal töltöd fel, amit ki lehet választani. Ha az a lényeg, hogy ne lehessen egyik select-et (év/hónap/nap) sem üresen elküldeni, akkor símán egy required rule kell neki, és hogy nem lehet üres.
Gondolom az a probléma, hogy ki lehet választani pl. a febr. 31-et, de tényleg felesleges a modelben ezt ellenőrizni, én is a CJuiDatePicker -t javaslom. Ha csak nem a megrendelőnek kifejezett kivánsága a dropbownlist. (nálam volt ilyen eset, hogy billentyűvel tudja kezelni a formot, ne kelljen egérrel odakattintani)
Ha egyedi validáció kell, akkor jó amit csináltál, mi vele a gond?