我有一个名为order
的表的数据库。
当我运行php symfony doctrine:build --all
时,我收到了以下错误:
SQLSTATE [42000]:语法错误或 访问冲突:1064你有一个 SQL语法错误;检查 与您的MySQL对应的手册 用于正确语法的服务器版本 在'order附近使用(id BIGINT AUTO_INCREMENT,status VARCHAR(255), colissimonumber VARCHAR(第1行25'。 失败的查询:“CREATE TABLE order(id BIGINT AUTO_INCREMENT,状态 VARCHAR(255),colissimonumber VARCHAR(255)NOT NULL,created_at DATETIME NOT NULL,updated_at DATETIME NOT NULL,PRIMARY KEY(id))ENGINE = 的MyISAM”。
问题很清楚,订单没有反引号(如果我在phpmyadmin中手动运行带有反引号的查询,它可以工作)
我如何告诉学说在表和字段名称周围添加反引号?任何解决方法都会重命名我的表格吗?
我使用doctrine 1.2运行symfony 1.4.9
答案 0 :(得分:4)
您可以在Doctrine_Core::ATTR_QUOTE_IDENTIFIER
上的学说配置中打开projectConfiguration
,这将引用表和列名,但不推荐使用:
只是因为你可以使用分隔符 标识符,并不代表你 应该使用它们。一般来说,他们结束了 导致比他们更多的问题 解决。无论如何,它可能是必要的 当你有一个保留字作为 字段名称(在这种情况下,我们建议 如果可以的话,你可以改变它。
http://www.doctrine-project.org/projects/orm/1.2/docs/manual/configuration/en#identifier-quoting
答案 1 :(得分:3)
您可能希望将模型命名为Order,但这并不意味着必须将相应的RDBMS表命名为相同。
Order:
tableName: project_order
columns: ...