Chcę stworzyć w modelu funkcję sprawdzającą poprawność numer pesel. Potrzebuje do tego dwóch danych z formularza- pesel i płeć. Jak odczytać te dane w modelu?
Mój formularz w Widoku wygląda następująco:
echo $this->Form->input('Patient.firstname'); echo $this->Form->input('Patient.lastname'); echo $this->Form->input('Patient.pesel');
echo $this->Form->input('Patient.birth_date',array( 'label'=>'Data urodzenia',
'dateFormat'=>'DMY',
'minYear'=> date('Y')-100, ));
echo $this->Form->input('Patient.sex', array( 'options' => array('Male'=>'Mężczyzna', 'Female'=>'Kobieta'), ));
A walidacja w modelu tak:
public $validate = array( 'pesel'=>array(
'pes' =>array(
'rule' => 'pess',
'message' => 'Błędny pesel')
));
public function pess($data){
$w=array(1
,3
,7
,9
,1
,3
,7
,9
,1
,3
); $pes=str_split($data['pesel']);
$wk=0;
for ($i=0;$i<=9;$i++){
$wk=($wk+$pes[$i]*$w[$i]);}
$k = 10- $wk % 10;
$sum = ($k==10)?0:$k;
if ($pes[10]==$sum) return true;
else {
return false;}
}else return false;
}
public $validate = array( 'pesel'=>array(
'pes' =>array(
'rule' => 'pess',
'message' => 'Błędny pesel'),
),
I wszystko działa poprawnie tylko chce jeszcze sprawdzić czy podana płeć zgadza się z PESELEM i potrzebuje do tego pobrać dane wysłane z Formularza z pola
$this->Form->input('Patient.sex');