2012-11-19 48 views
0

我有如下代碼:CakePHP的日期AUTOMAGIC

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

其中產生一個select爲一年,一個用於月份,一個用於天。我想要一個輸入文字而不是select,我可以把所有的日期。所以,我做了:

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

形式的作品,但驗證不工作,我不能得到正確的數據在控制器(Cake的「AUTOMAGIC」),卻找不到什麼是錯的。當您使用表單助手這樣

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

回答

0

如果你想驗證該值是一個日期,在該模型中使用此將在控制器中以這種格式收到:

$this->request->data['Model_name']['demo']['month']; 
$this->request->data['Model_name']['demo']['day']; 
$this->request->data['Model_name']['demo']['year']; 

在你的情況下,如果你使用像t這樣的文本框他:

$this->Form->date('demo', array('type' => 'string')); 

你會得到你的約會像這樣:

$this->request->data['Model_name']['demo']; 

我不知道你是怎麼想的日期,或者您是如何存儲你的數據庫上,但你必須要考慮到這從一種類型轉換到另一種類型時需要考慮。

0

$this->Form->date('demo', array('type' => 'date')); 

得到的最新數據