Validation Cakephp表单验证空索引
好的,简而言之,我正在尝试验证一个表单,就像我以前做过一百万次一样,没有任何问题。但是,我发现在记录验证错误时,所有无效字段在validationErrors数组中都有一个索引,但是消息是空的 是的,我肯定在模型中设置了验证消息,所以我不确定为什么它是空的 以下是我的模型验证:Validation Cakephp表单验证空索引,validation,cakephp,Validation,Cakephp,好的,简而言之,我正在尝试验证一个表单,就像我以前做过一百万次一样,没有任何问题。但是,我发现在记录验证错误时,所有无效字段在validationErrors数组中都有一个索引,但是消息是空的 是的,我肯定在模型中设置了验证消息,所以我不确定为什么它是空的 以下是我的模型验证: public $validate = array( 'effective_policy_date' => array( 'date' => array( 'ru
public $validate = array(
'effective_policy_date' => array(
'date' => array(
'rule' => array('date'),
'message' => 'Invalid date format',
),
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'Policy date required',
),
),
'business_address' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'Business address required',
),
),
'city' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'City required',
),
),
'zip_code' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'Zip code required',
),
),
'state_id' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'State required',
),
),
'contact_person' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'Contact person required',
),
),
'phone' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'Phone number required',
),
),
'email' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
'message' => 'Email address required',
),
'email' => array(
'rule' => array('email'),
'message' => 'Invalid email format',
),
),
);
以下是提交带有空字段的表单后validationErrors数组的输出:
[AccountsRequest] => Array
(
[effective_policy_date] => Array
(
)
[policy_number_one] => Array
(
)
[policy_number_two] => Array
(
)
[policy_number_three] => Array
(
)
[policy_number_four] => Array
(
)
[business_address] => Array
(
)
[city] => Array
(
)
[zip_code] => Array
(
)
[state_id] => Array
(
)
)
为了完整起见,下面是我的表单->在视图中使用的创建数组以及负责处理表单提交的控制器操作:
表单创建()方法
<?php
echo $this->Form->create(
'Request',
array(
'novalidate' => 'novalidate',
'action' => 'new_request',
'inputDefaults' => array(
'label' => false,
'div' => false,
'error' => array(
'attributes' => array(
'wrap' => 'label', 'class' => 'error'
)
)
)
)
);
?>
您将在验证数组中看到一些不在validationErrors中的索引,这只是因为我还没有完全完成将原始HTML转换为CakePHP表单
问题:validationErrors数组不应为空。它应该包含notEmpty规则的消息,因此表单前端有空的错误验证元素。你知道我做错了什么吗?Aarg,真烦人。我已经弄明白了,这是一个很好的教训 对于将来有类似问题的人,请确保输入字段符合当前表单模型的关系 例如,在本例中,我表单的模型是
'Request'
。请求有许多'AccountsRequest'
。因此,我的表单输入类似于:
AccountsRequest.effective_policy_date
它应该在哪里
AccountsRequest.0.effective_policy_date
通过此更改,我的模型验证消息现在可以毫无问题地显示
然而,我仍然很想知道为什么CakePHP甚至将这些字段视为无效字段,而且如果它足够聪明,能够将这些字段视为无效字段,为什么它不给我验证消息
哦,好吧
AccountsRequest.0.effective_policy_date