【发布时间】:2012-08-24 11:56:59
【问题描述】:
摆脱三个<select> 元素并允许用户只在常规<input type="text"> 控件中键入日期的标准方法是什么?
要求包括:
- 日期格式必须是 D/M/Y
- 必须正确打印现有日期
- 不能中断日期验证
我找不到任何合理的文档,只是在论坛帖子中黑客攻击了像我一样一无所知的用户 xD
澄清:请注意CakePHP标签。我已经知道如何在常规 PHP 中处理日期。我需要关于精确的 CakePHP 机制的帮助,我可以用来调整框架的默认功能(我的意思是调整而不是覆盖)。
到目前为止,我已将其添加到模型中:
public $validate = array(
'fecha' => array(
array(
'rule' => 'notEmpty',
'required' => true,
),
array(
'rule' => array('date', 'dmy'),
),
)
);
...我在视图中组成了这样的字段:
echo $this->Form->input(
'Foo.fecha',
array(
'type' => 'text',
)
);
...但我能做的就是读取和验证用户输入:它不会正确打印以前的日期,也不会正确存储新日期。
【问题讨论】:
-
您可以自己创建表单,而不是使用 cakephp '自动表单生成器'
-
这违背了使用框架的概念,不是吗?
-
框架不“灵活”,我责怪框架:)
-
@OfirBaruch - 该框架非常灵活,但您需要知道如何使用它。他可能获得多个选择框的原因是由于数据库中的表设置为 DATETIME。要获得常规文本框 -
$this->Form->input('my_field_name', array('type'=>'text'));结合 jquery datepicker 的 @Cupidvogel 建议和 cakephp's builtin field validator 他应该覆盖他的基础。 J/K - 看到你的评论已经过时了。
标签: php cakephp cakephp-2.2