2011-06-02 63 views
4

它看起來像一個簡單的任務,但我無法完成它:
如何定義一個列爲UNSIGNED ZEROFILL與Doctrine2?Zerofill與Doctrine2

我無法找到關於它的docs的任何信息。

THX任何幫助!

回答

9

您是否需要它在數據庫級別或僅需要應用程序?你可以添加應用程序級別零:

class MyEntity { 
    public function getSomeColumn() { 
     return sprintf('%05d', $this->someColumn); // or str_pad(...) 
    } 
} 

但是,如果你真的需要它在數據庫級別,那麼你就必須註釋列的字符串:@Column(type="string", columnDefinition="UNSIGED INTEGER(5) ZEROFILL")

+0

自定義映射此類型可以得到所產生的架構和正確更新有用的。 – Ocramius 2012-01-31 08:21:31

+0

如果你解釋你的答案的「%05d」部分會有幫助 – Trix 2017-01-08 16:32:51

0

使用在@Column註釋(非便攜式)columnDefinition財產。

+0

你的意思是這樣的:'@Column(類型= 「整數」,columnDefinition = 「UNSIGNED ZEROFILL」)'?試過了,它不起作用。 – sprain 2011-06-02 12:21:23

+3

@sprain:它不工作,因爲你聲明一個列作爲它應該是一個字符串的整數。 – Crozin 2011-06-07 23:12:25

1

好語法是:

@Column(type="integer", columnDefinition="INT(5) UNSIGNED ZEROFILL")