模型日期规则在保存时无效

时间:2014-04-03 13:12:53

标签: cakephp

我尝试使用非Add方法在我的数据库中保存数据时出现问题,我的保存代码如下:

$this->loadModel('PlanRequest');
$planRe = array(
    'PlanRequest'=>array(
            'booking'=>$book, 
            'user_id'=>$user['id'], 
            'plan_id'=>$plid, 
            'request_date'=>$date->format('d/m/Y h:i:s A'), 
            'number_of_rooms'=>$troom, 
            'number_of_rooms_child'=>$troom2
    ));
$this->PlanRequest->create();
$this->PlanRequest->save($planRe);

我很确定这是正确的方法,但它不起作用,我也没有收到任何错误信息,我是否遗漏了重要的内容?

编辑

pr($this->PlanRequest->validationErrors)

感谢Nunser!我从我的模型中得到以下错误:

Array
(
    [request_date] => Array
        (
            [0] => Insert a valid date
        )

)

在模型中,验证非常简单

'request_date'=>array(
            'rule'=>'date',
            'required'=>true,
            'message'=>'Insert a valid date'
        )

1 个答案:

答案 0 :(得分:1)

即使你的规则很简单,也会导致问题。这是你的规则

'request_date'=>array(
        'rule'=>'date',
        'required'=>true,
        'message'=>'Insert a valid date'
    )

您没有传递任何格式参数,因此根据the docs,默认日期格式为'ymd'

  

如果没有提供密钥,将使用的默认密钥是'ymd':例如2006-12-27或06-12-27(分隔符可以是空格,句点,短划线,正斜杠)

所以,你需要修改这个

 'request_date'=>$date->format('d/m/Y h:i:s A'), 

调整为默认日期规则,或更改规则以适应您的值(使用规则的第二个和/或第三个参数)。例如:

'request_date'=>array(
        'rule'=> array('date', 'my'),
        'required'=>true,
        'message'=>'Insert a valid date'
    )

(例如,接受日期06/12)。我不知道你是否需要这种格式'd / m / Y h:i:s A'或者你可以和另一个一样,所以你必须看看它是否是你需要的规则改变或参数。