开发者

Symfony+Doctrine: Correct YAML syntax for default value of boolean field

I am working on the schema for my Symfony app, and I need to set the default value of two boolean fields to false. However, with all the ways I've tried to do it, when the sql gets generated, it comes out with the default keyword, but no default value after it.

my last attempt was:

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

but I have also tried default: false, default: 'false', default: 0 since false is just an alias for 0 in MySQL, and default: '0'

Failing Query:

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), P开发者_如何学CRIMARY KEY(id)) ENGINE = INNODB

Notice negotiable bool DEFAULT , complete bool DEFAULT ,

The file I've been playing with is the /config/doctrine/schema.yml file. I'm kind of new to symfony/doctrine. I think this is the right one, but I guess I could be wrong. I do symfony cc between each attempt to insert the sql to make sure that it didn't cache the schema. But it almost seems like its not using the file I've been changing...


Since I haven't enough points to add a comment, I'll add it as an answer for people finding this through Google and the sorts like myself. I know it's an old question.

In Symfony 2.5 (at least), the correct way of setting a default value in YAML is as follows:

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


Boolean is a synonym for TINYINT. Use integer(1) instead and set your default to 0/1.

Sources:

http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html

http://www.symfony-project.org/doctrine/1_2/en/04-Schema-Files


Instead of using "bool" you should use "boolean" in schema. Also, default: false should work.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜