首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP:将日期验证为“dmy”,但将其保存到MySQL作为正确日期

问CakePHP:将日期验证为“dmy”,但将其保存到MySQL作为正确日期
EN

Stack Overflow用户
提问于 2015-07-24 15:00:47
回答 1查看 510关注 0票数 0

我有一个CakePHP 2.7应用程序。在我的模型中,我有以下验证:

代码语言:javascript
复制
public $validate = [
    'trip_start' => [
        'rule' => ['date', 'dmy'],
        'message' => 'Date format is DD/MM/AAAA'
    ];

这对于客户端验证很好,我可以验证用户选择的日期是否正确。

但是为了保存到MySQL,预期的格式是YYYY。这个问题的“标准”解决方案是什么?修改beforeSave?问题是,需要有两个不同的验证。一种是我期望用户输入日期的格式(即使使用数据交换),另一种是MySQL所期望的格式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-24 15:23:56

CakeTime类是为它创建的。

代码语言:javascript
复制
App::uses('CakeTime', 'Utility');
echo CakeTime::format('2015-07-24', '%d-%m-%Y');

24-07-2015

在您的示例中,您只需在验证之后重新格式化数据:

代码语言:javascript
复制
public function afterValidate(){
$this->request->data['Model']['fieldName'] = CakeTime::format($this->request->data['Model']['fieldName'], '%Y-%m-%d');
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31613823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档