2010-11-21 44 views
5

我正在研究Symfony应用程序的模式,我需要将两个布尔型字段的默认值设置为false。然而,尽管我试图做到这一点,但是当sql生成时,会出现默认关键字,但在其后没有默认值。Symfony + Doctrine:修正布尔型字段默认值的YAML语法

我最后的尝试是:

negotiable: 
    type: bool 
    default: "false" 
complete: 
    type: bool 
    default: "false" 

,但我自己也尝试default: falsedefault: 'false'default: 0因为假的仅仅是在MySQL 0的别名,default: '0'

失败查询:

CREATE TABLE dormcode_project (id BIGINT AUTO_INCREMENT, client_id BIGINT, title VARCHAR(255), briefdesc LONGTEXT, spec LONGTEXT, coder_id BIGINT, paytype VARCHAR(30), negotiable bool DEFAULT , complete bool DEFAULT , created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, INDEX coder_id_idx (coder_id), INDEX client_id_idx (client_id), PRIMARY KEY(id)) ENGINE = INNODB 

注意negotiable bool DEFAULT , complete bool DEFAULT ,

我一直在玩的文件是/config/doctrine/schema.yml文件。我对symfony/doctrine很陌生。我认为这是正确的,但我想我可能是错的。我在每次尝试插入sql以确保它没有缓存架构之间做symfony cc。但它几乎看起来像它没有使用我一直在改变的文件...

+0

尝试(一行):转让:{类型:布尔,默认:假} – 2010-11-21 07:47:15

+0

我尝试过,但似乎没有任何区别。完全相同,错误的SQL仍然会吐出:/ – 2010-11-21 08:01:11

回答

5

而不是使用“布尔”你应该在架构中使用“布尔”。另外,默认值:false应该可以工作。

+0

我将ti更改为'default:false'并将'bool'更改为'boolean',但得到了相同的结果 – 2010-11-21 07:27:26

+3

向我们展示您的更新模式,这适用于我:'管理员:{类型:布尔值,默认值:false}'。 – Maerlyn 2010-11-21 11:27:20

8

,因为我没有足够的积分,添加评论,我将其添加为人们通过谷歌找到这个答案和各种类似我。我知道这是一个古老的问题。

在Symfony的2.5(至少),设置在YAML默认值的正确的方法如下:

negotiable: 
    type: boolean 
    options: 
     default: 0 
complete: 
    type: boolean 
    options: 
     default: 0 
+0

为什么这个答案一直在底部..这是正确的解决方案。赞美我的朋友。 – axelvnk 2015-07-08 08:06:00

+0

奇怪的是,我用这个确切的语法使用相同的版本(2.5),它仍然拒绝工作:/ – motagirl2 2018-02-19 15:09:20

相关问题