我试图验证zend框架2条码但没有成功
验证始终返回false
$bc128 = new Code128();
$bc128->setText('TEST');
$valid = new \Zend\Validator\Barcode('code128');
if ($valid->isValid($bc128->getTextToDisplay())) {
exit('valid');
} else {
exit('invalid');
}
谁知道有什么事情发生?
答案 0 :(得分:0)
这似乎是条形码验证器校验和逻辑中的一个错误。验证器尝试在几个步骤中将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。