zend framework 3 Select 标签验证
zend framework 3 Select tag validation
我收到错误:
在干草堆中找不到输入
在表格 post 之后。请参阅下面的选择标记代码行:
// Add "roles" field
$this->add([
'type' => 'select',
'name' => 'roles',
'attributes' => [
'multiple' => 'multiple',
'options'=>$this->role_desc,
'inarrayvalidator' => false,
'class'=>'form-control'
],
'options' => [
'label' => 'Role(s)',
],
]);
// Add input for "roles" field
$inputFilter->add([
'class' => ArrayInput::class,
'name' => 'roles',
'required' => true,
'haystack'=>$this->role_ids,
'filters' => [
['name' => 'ToInt'],
],
'validators' => [
['name'=>'GreaterThan', 'options'=>['min'=>1]],
['name'=>'InArray', 'options'=>['haystack'=>$this-
>role_ids]]
],
]);
InArray 似乎验证良好,我只是不确定是什么引发了异常。提前谢谢你。
实际上,您的问题类似于 link
要解决此问题,请将您的验证器定义更改为:
'validators' => [
['name'=>'GreaterThan', 'options'=>['min'=>1]],
[
'name' => 'Explode',
'options' => array(
'validator' => [
'name'=>'InArray',
'options'=> [
'haystack'=>$this->role_ids
]
]
)
]
],
不幸的是,我认为没有 "cleaner" 方法可以做到这一点。
或者,也许您可以使用 MultiCheckbox.
我收到错误: 在干草堆中找不到输入 在表格 post 之后。请参阅下面的选择标记代码行:
// Add "roles" field
$this->add([
'type' => 'select',
'name' => 'roles',
'attributes' => [
'multiple' => 'multiple',
'options'=>$this->role_desc,
'inarrayvalidator' => false,
'class'=>'form-control'
],
'options' => [
'label' => 'Role(s)',
],
]);
// Add input for "roles" field
$inputFilter->add([
'class' => ArrayInput::class,
'name' => 'roles',
'required' => true,
'haystack'=>$this->role_ids,
'filters' => [
['name' => 'ToInt'],
],
'validators' => [
['name'=>'GreaterThan', 'options'=>['min'=>1]],
['name'=>'InArray', 'options'=>['haystack'=>$this-
>role_ids]]
],
]);
InArray 似乎验证良好,我只是不确定是什么引发了异常。提前谢谢你。
实际上,您的问题类似于 link
要解决此问题,请将您的验证器定义更改为:
'validators' => [
['name'=>'GreaterThan', 'options'=>['min'=>1]],
[
'name' => 'Explode',
'options' => array(
'validator' => [
'name'=>'InArray',
'options'=> [
'haystack'=>$this->role_ids
]
]
)
]
],
不幸的是,我认为没有 "cleaner" 方法可以做到这一点。 或者,也许您可以使用 MultiCheckbox.