2010-11-21 105 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