Entity table name 用到了预留关键字

来源:-

ArBen

2015-02-11 16:30

@ORM\Table(name="order")
尝试着改成:
@ORM\Table(name="`order`")



还是不行,不知道是不是没有clear cache,还是update没成功,在网上找了一些方法,一直没成功,
请老师指导。
写回答 关注

2回答

  • 洪涛
    2015-02-11 21:41:24

    不管是什么理由,我都非常不建议使用关键字作为表名,虽然你可以通过一些特殊的语法绕过去,但不管将来实际操作数据库的时候还是牵涉到运维和后续开发,你任何对这个表的操作都要额外做这么一个处理,事实上是很麻烦的事情。


    我给你出两个方案

    1. 改名叫orders

    2. 使用prefix table name,比如xxx_order这样,如果想在所有表上都实现prefix而不是一个一个改,具体做法可以参考:http://stackoverflow.com/questions/7504073/how-to-setup-table-prefix-in-symfony2

    ArBen

    thx!

    2015-02-12 15:02:54

    共 1 条回复 >

  • ArBen
    2015-02-11 17:35:58

    补充一下,我是用:

    doctrine:mapping:import

    生成xml文件后,再用:

    generate:doctrine:entities

    生成的Entity文件,然后其中的一个table name=order

    项目已存在的order表名,不好随便改名,所以我就想到一办法把Entity更改成:

    @ORM\Table(name="`order`")

    但错误提示还是显示order sql 语法错误,没有生效成`order`,

    是要清缓存,还是怎么操作,我都尝试过几次,还是没有解决。求解?

洪大师带你解读Symfony 2框架

洪大师教你玩转强大的框架-Symfony2,提高代码性能

20604 学习 · 245 问题

查看课程

相似问题