短版本:插入日期與Doctrine2
有誰知道怎麼做使用Doctrine2一個簡單的日期插入?我需要在YYYY-MM-DD('Y-m-d')格式中插入一個日期到MySQL'日期'字段。
如果你已經知道如何做到這一點,你可以跳過下面的解釋到目前爲止我嘗試過的。否則,關於我的問題的更多細節會在休息時下面進行。
長的版本:
我有一個Doctrine2 CRUD應用程序,需要插入一個表格,提交日期爲MySQL數據庫。
日期通過三種下拉菜單的形式提交:年,月和日。
在我的學說庫的方法,我使用日期()來提交的值轉換成一個日期,然後調用一個名爲setCreated()的方法在我的實體類:
$string = $values['year'] . '-' . $values['month'] . '-' . $values['day'];
$date = date('Y-m-d', strtotime($string));
$item->setCreated($date);
在setCreated
則()首先我想在這樣的日子來傳遞:
public function setCreated($date) {
$this->created = $date;
}
但是,這給了我此錯誤消息:在...主義\ DBAL \類型非對象「調用一個成員函數的格式()\ DateType.php」。
下一個我試圖改變這樣的setter:
public function setCreated($date) {
$this->published = new \Doctrine\DBAL\Types\DateType($date);
}
但是,這並不工作之一: 「打電話給私人主義\ DBAL \類型\型號:: __結構()......」
最後我試圖創建一個簡單的Date對象插入:
public function setCreated($date) {
$this->created = new \Date($date);
}
這給了我這個錯誤:「類‘日期’的路徑\爲\實體\ Item.php沒有發現......」
我也試過上面的版本沒有Date的前導反斜槓,這給了我這個錯誤:「警告:require(Path \ Entity \ Date.php)無法打開流。在Path \ Doctrine \ Common \ ClassLoader.php中沒有這樣的文件或目錄...「
(爲了確認,我的包含路徑在位於)
有一個在教義手冊約與DateTime的情況下工作的explanation,但我並不需要存儲的時候,只是日期YYYY-MM-DD。
這似乎將是一個很常見的問題 - 有沒有人看到我在做什麼錯誤和/或知道如何在Doctrine2中插入日期?
確認所有我需要做的就是通$日期到一個新的\ DateTime實例。猜猜我已經掛上了這個事實,我不需要存儲時間。感謝您的解決方案,並感謝關於如何更好地處理與數據庫有關的Doctrine的建議。 – cantera