gpt4 book ai didi

php - 如何使用 Zend Framework 2 验证多重选择

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:41:38 29 4
gpt4 key购买 nike

我正在尝试使用输入过滤器验证多重选择,但每次我都看到错误。错误是“notInArray”:“在 haystack 中找不到输入”。(我使用 ajax 但它不符合要求)。为了更清楚,我将展示我的部分代码。

在 Controller 中:



if ($request->isPost()) {
$post = $request->getPost();
$form = new\Settings\Form\AddUserForm($roles);//
$form->get('位置')
->设置选项(
array('value_options'=> $post['positions']));

//.... 更多代码...

当我输入 print_r($post['positions']);我懂了:数组(0 => 118, 1 => 119)

在 ..../form/UserForm.php 中我创建了乘法元素

$this->add(array(
'type' => 'Zend\Form\Element\Select',
'attributes' => array(
'multiple' => 'multiple',
'id' => 'choosed_positions',
),
'required' => false,
'name' => 'positions',



));

验证文件中的代码是:

$inputFilter->add($factory->createInput(array(
'name' => 'positions',
'required' => false,
'validators' => array(
array(
'name' => 'InArray',
'options' => array(
'haystack' => array(118,119),
'messages' => array(
'notInArray' => 'Please select your position !'
),
),
),
),

每次看到此错误可能是什么原因,我该如何解决?

最佳答案

默认在 Zend Framework 2 中选择 已附加 InArray 验证器

如果您要添加新的 - 您将有两个

你应该禁用默认的如下:

$this->add(array(
'type' => 'Zend\Form\Element\Select',
'options' => array(
'disable_inarray_validator' => true, // <-- disable
),
'attributes' => array(
'multiple' => 'multiple',
'id' => 'choosed_positions',
),
'required' => false,
'name' => 'positions',
));

并且您应该摆脱额外的错误消息。如果这对您有帮助,请告诉我们。

关于php - 如何使用 Zend Framework 2 验证多重选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17001181/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com