我尝试使用非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'
)
答案 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'或者你可以和另一个一样,所以你必须看看它是否是你需要的规则改变或参数。