【问题标题】:Put underscore in class names of Symfony2 entity在 Symfony2 实体的类名中加下划线
【发布时间】:2013-07-16 09:17:08
【问题描述】:

我实际上已经使用 Symfony2 完成了一个项目,但是我的老板希望我更改数据库中表的名称。他想在我的表格名称中加上下划线,这意味着在类名中加上下划线。

我试图这样做,但它不起作用。当我这样做时,我收到一条错误消息: “在“另一个实体”中找不到实体“实体””

我还尝试重命名不带下划线的类名,看看我是否做错了,但没有,这是有效的。

我在网上搜索了一下,也许可以解释这个问题的原因,这里是:

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md#underscores-in-namespaces-and-class-names

所以有人可以准确地告诉我如何使用 symfony 在我的表名中添加下划线?

【问题讨论】:

    标签: symfony doctrine-orm entity symfony-2.3


    【解决方案1】:

    根据the doc,您可以将表名与类名分开。

    只要这样做:

    <?php
    /**
     * @Entity
     * @Table(name="my_table_name")
     */
    class MyPersistentClass
    {
        //...
    }
    

    仅此而已:)

    我必须补充一点,如果您使用app/console doctrine:schema:update --force 命令重新生成数据模型,您将不会破坏现有的表和数据。然后,您必须手动将数据从旧表迁移到新表。

    【讨论】:

    • ...我从昨天开始一直在努力,非常感谢!这比在所有项目中更改类名要容易得多!
    【解决方案2】:

    也许有更好的解决方案:使用下划线命名策略。

    https://stackoverflow.com/a/12702949/244058

    【讨论】:

      猜你喜欢
      • 2014-06-13
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 2014-06-20
      • 2011-05-18
      • 2014-02-09
      相关资源
      最近更新 更多