2014-10-30 103 views
0

我尝试验证的Zend Framework 2条码但没有成功Zend框架2条形码CODE128错误的验证

验证怎么回事总是返回false

$bc128 = new Code128(); 
    $bc128->setText('TEST'); 
    $valid = new \Zend\Validator\Barcode('code128'); 
    if ($valid->isValid($bc128->getTextToDisplay())) { 
     exit('valid'); 
    } else { 
     exit('invalid'); 
    } 

有谁知道?

回答

0

它看起来像条码验证器的校验和逻辑中的一个错误。 Validator尝试在几个步骤中将null(默认)作为布尔值进行转换。 (我不知道为什么)

你可以通过传递一个布尔false像下面useChecksum选项解决方法现在:

$bc128 = new \Zend\Barcode\Object\Code128(); 
$bc128->setText('TEST'); 

$options = array(
    'adapter' => 'code128', 
    'useChecksum' => false 
    ); 

$valid = new \Zend\Validator\Barcode($options); 

if ($valid->isValid($bc128->getTextToDisplay())) { 
    exit('valid'); 
} else { 
exit('invalid'); 
} 

相关github上发出link