蛋糕菲普日期自动魔术



我有以下代码:

echo $this->Form->input('date', array(
        'label' => __('Date')
    )
);

生成一个select表示年,一个用于月,一个用于日。我想要一个输入文本而不是select我可以输入所有日期的文本。所以,我已经做到了:

echo $this->Form->input('date', array(
        'label' => __('Date'),
        'type' => 'text'
    )
);

表单有效但验证不起作用,我无法在控制器上获得正确的数据(Cake 的"自动魔术"),但找不到问题所在。

如果要验证值是否为日期,请在模型中使用它:

public $validate = array(
   'your_date_column' => array(
           'rule'       => 'date',
           'message'    => 'Enter a valid date'
    )
);

当您像这样使用表单帮助程序时:

$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'];

我不知道您想如何获取日期或如何将其存储在数据库中,但是当您从一种类型更改为另一种类型时,您必须考虑到这一点。

相关内容

  • 没有找到相关文章

最新更新