2011-06-02 61 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")