this is my $_POST
Code:
Array ( [id_sessioni_ordini] => 3 [nomeCapoAbbigliamento_1] => T-shirt [idCapoAbbigliamento_1] => [taglia_1] => 2 [quantita_1] => 3 [nomeCapoAbbigliamento_2] => Felpa [idCapoAbbigliamento_2] => [taglia_2] => [quantita_2] => [nomeCapoAbbigliamento_3] => Pile [idCapoAbbigliamento_3] => [taglia_3] => 3 [quantita_3] => 2 [nomeCapoAbbigliamento_4] => Pantalone lungo [idCapoAbbigliamento_4] => [taglia_4] => [quantita_4] => )
NOw i can get the max id and write this code :
Code:
$post = $this->request->getPost();
print_r($post);
//creo una varriabile per vedere l'id più grande
$max=0;
foreach ($post as $k=>$v) {
//salto il controllo sull'id della sessione ordini
if($k!='id_sessioni_ordini'){
//esplodo i post con underscore per recuperare i numeri
$array_post =explode('_',$k);
//print_r($array_post);
//salvo il numero maggiore
if($array_post[1]>$max){
$max = $array_post[1];
}
}
}
//ciclo tutti i post sapendo il num max
for ($i=1; $i <=$max ; $i++) {
$nome_campo_rules ='idTaglia_'.$i;
$nome_taglia = 'taglia_'.$i;
$nome_quantita = 'quantita'.$i;
$nome_campo_reale = 'nomeCapoAbbigliamento_'$i;
$rules[] =[$nome_campo_rules=>[
'rules'=>'controllo_taglia_quantita_presenti['.$nome_taglia.','.$nome_quantita.']',
'errors'=>[
'controllo_taglia_quantita_presenti'=>'Devi inserire sia la taglia che la quantita per il campo '.$post[$nome_campo_reale]
]
]];
}
Now how can i get the value on validation class ?
Code:
/**
* Funzione che controlla se è presente sia la taglia che la quantita
*
*
*/
public function controllo_taglia_quantita_presenti(string $str,string $fields, array $data)
{
$taglia = $data['taglia_x']; //change x with real number
$quantita = $data['quantita_x']; //change x with real number
if($taglia AND $quantita){
return true;
}else{
return false;
}
}