CakePHP整型字段默认值null在读取()或创建()后的save()验证失败
模式: 型号: 控制器: 此代码无法验证休假\u请求\u拒绝\u原因\u id 我已经将问题缩小到在调用Model->read或Model->create之后尝试调用Model->save时。事实证明,如果我注释掉create调用,代码将工作 我敢说这是虫子。然而,我觉得我以前在整数列中经历过这种情况,并且忘记了这方面的工作。感谢您的指导 使现代化CakePHP整型字段默认值null在读取()或创建()后的save()验证失败,php,mysql,sql-server,cakephp,Php,Mysql,Sql Server,Cakephp,模式: 型号: 控制器: 此代码无法验证休假\u请求\u拒绝\u原因\u id 我已经将问题缩小到在调用Model->read或Model->create之后尝试调用Model->save时。事实证明,如果我注释掉create调用,代码将工作 我敢说这是虫子。然而,我觉得我以前在整数列中经历过这种情况,并且忘记了这方面的工作。感谢您的指导 使现代化 我应该注意,休假请求、拒绝、原因、id不是表单提交中$this->数据的一部分。因此,验证失败确实很奇怪。此外,我无意在验证规则中使用'allowE
我应该注意,休假请求、拒绝、原因、id不是表单提交中$this->数据的一部分。因此,验证失败确实很奇怪。此外,我无意在验证规则中使用'allowEmpty'=>true。当它出现在$this->data中时,我希望确保它是数字。在验证数组中,尝试将空选项设置为true:
'vacation_request_denial_reason_id' => array('numeric' => array('rule' => array('numeric'), 'empty' => true
这将允许值为空。我不记得默认值是否为false,但似乎可能是这样。谢谢,但我不想允许空值。我已经更新了我的原始问题,以确保这是清楚的。啊,所以您希望它被填充,但如果它根本不是数据结构的一部分,那也没关系。在这种情况下,使用'required'=>false。退房
class VacationRequest extends AppModel {
var $name = 'VacationRequest';
var $actsAs = array('Containable');
var $validate = array('employee_id' => array('numeric' => array('rule' => array('numeric'))),
'approving_supervisor_id' => array('numeric' => array('rule' => array('numeric'))),
'vacation_request_status_id' => array('numeric' => array('rule' => array('numeric'))),
'vacation_hours' => array('numeric' => array('rule' => array('numeric'))),
'vacation_request_denial_reason_id' => array('numeric' => array('rule' => array('numeric'))));
function add() {
if (!empty($this->data)) {
$this->VacationRequest->create();
if ($this->VacationRequest->save($this->data)) {
// ...
}
}
}
'vacation_request_denial_reason_id' => array('numeric' => array('rule' => array('numeric'), 'empty' => true