未找到基表或视图 - symfony2

时间:2015-07-08 16:08:15

标签: symfony

我在部署symfony2应用程序时遇到问题。我收到以下错误:

SQLSTATE[42S02]: Base table or view not found: 1146 Table '14271425_sjokh.Books' doesn't exist 

我发现此错误与案例问题有关。

给定的表存在于服务器上,但称为books而不是Books

我试图通过修改config.yml来解决这个问题,并添加到naming_strategy: doctrine.orm.naming_strategy.underscore(如此处提出的那样:Symfony2: Base table or view not found: 1146)但它没有帮助。

doctrine:

    orm:
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true

2 个答案:

答案 0 :(得分:1)

Doctrine下划线命名策略不会使实体名称复数化,例如RoR中的情况。

因此,对于 Book 实体,下划线策略需要名为 book 的表。对于 SomeCamelcase 实体,它需要 some_camelcase 表。

您应该重命名表或通过配置告诉doctrine表名是什么。例如,如果使用注释,则为:

/**
 * @ORM\Table(name="books")
 */
class Book
{
    // ....
}

答案 1 :(得分:0)

似乎我的问题与学说注释中的错误案例有关。

我删除了以下代码:

 * @ORM\Table(name="Books")

这与编辑配置文件一起添加:

doctrine:

    orm:
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true

使脚本正常工作。