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

孤人 提交于 2019-12-22 05:59:14

问题


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), PRIMARY 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...


回答1:


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




回答2:


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



回答3:


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



来源:https://stackoverflow.com/questions/4236828/symfonydoctrine-correct-yaml-syntax-for-default-value-of-boolean-field

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!