Validateur comparaison input d'une table avec valeur d'une autre table
Bonjour à tous, je viens vers vous après avoir longuement chercher.
Voilà,
J'ai 2 tables, "device" et "model".
device contient l'id du model.
Lors de l'insertion du formulaire de device je cherche à faire un validateur qui compare un champ "serial" du formulaire et le "nom du model" de la base.
S'ils correspondent c'est bon sinon false.
J'ai fais cette requête pour l'appeler dans le validateur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public function verification_serialmodel($iddevice)
{
$select = $this->select()
->setIntegrityCheck(false)
->from(array('device'),
array('id','serial_number'))
->join(array('netasq_model'),
'device.netasq_model_id = netasq_model.id',array('name'))
->where('device.id = ?', $iddevice);
return $this->fetchRow($select);
} |
et la le code du validateur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
class Application_Validate_VerificationSerialmodel extends Zend_Validate_Abstract
{
const MSG = 'verification_serialmodel';
protected $_messageTemplates = array(
self::MSG => 'Le numero de serie ne correspond pas au modele'
);
public function isValid($value, $context = null)
{
$device = new Application_Model_DbTable_Device();
$modelextract = str_replace("-","",$ar_data['name']);
$modelserie = substr($ar_data['serial_number'], 0, -10);
$device->verification_serialmodel($ar_data);
if($modelextract == $modelserie) return true;
$this->_error(self::MSG);
return false;
}
} |
Pourriez vous m'aider s'il vous plaît ?
Merci d'avance de votre aide.
Cordialement,