我有一个在两个字段(gid、bid)上有主键的表单。我需要添加验证以阻止重复条目进入数据库。
我已经检查过 ZF2 解决方案。http://framework.zend.com/manual/2.2/en/modules/zend.validator.db.html# exclude-records。虽然这种处理复合键的方法看起来不是理想的方法,但我仍然在尝试它,因为它看起来只是内置的方式。现在它要求我提供第二个字段的值(排除中的值选项),这又是一个问题。正如我正在尝试的那样
$inputFilter->add(array(
'name' => 'gid',
'required' => true,
'validators' => array(
array(
'name' => 'NotEmpty',
'options' => array(
'messages' => array(
'isEmpty' => 'required'
),
),
),
array (
'name' => 'Zend\Validator\Db\NoRecordExists',
'options' => array (
'table' => 'gtable',
'field' => 'gid',
'adapter' => $this->dbAdapter,
'messages' => array(
\Zend\Validator\Db\NoRecordExists::ERROR_RECORD_FOUND => 'The specified key already exists in database'
),
'exclude' => array(
'field' => 'bid',
'value' => [?],
),
)
),
)
));
我如何获得这个值,因为表单是绝对独立的类/文件,而不是我提交表单值的控制器。这个问题是否存在一些更好的架构解决方案或者一些将提交的字段值传递给表单类的黑客只是解决方案?
注意:我不赞成为此任务构建我的验证插件,因为短时间是功能的限制。