我有以下代码:
echo $this->Form->input('date', array(
'label' => __('Date')
)
);
一年生成一个select
,一个生成一个月,一个生成一天。我想要一个输入文本而不是select
,我可以把所有日期。所以,我做了:
echo $this->Form->input('date', array(
'label' => __('Date'),
'type' => 'text'
)
);
表格有效,但验证不起作用,我无法在Controller获得正确的数据(Cake的“自动化”),但无法找到错误。
答案 0 :(得分:0)
如果您要验证该值是否为日期,请在模型中使用:
public $validate = array(
'your_date_column' => array(
'rule' => 'date',
'message' => 'Enter a valid date'
)
);
答案 1 :(得分:0)
当你使用这样的表单助手时:
$this->Form->date('demo', array('type' => 'date'));
生成的日期数据将以以下格式在控制器中接收:
$this->request->data['Model_name']['demo']['month'];
$this->request->data['Model_name']['demo']['day'];
$this->request->data['Model_name']['demo']['year'];
在您的情况下,如果您使用这样的文本框:
$this->Form->date('demo', array('type' => 'string'));
你会得到这样的日期:
$this->request->data['Model_name']['demo'];
我不知道您希望如何获取日期或如何将其存储在数据库中,但是当您从一种类型更改为另一种类型时,您必须考虑这一点。