Symfony2,twig模板和@ORM \ Table

时间:2012-06-11 22:33:35

标签: symfony doctrine twig

我有一个有效的应用程序。现在我想将我的实体的表名从CamelCase更改为underscore_case。

旧代码:

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

每件事都有效

新代码:

/**
 * @ORM\Table(name="featured_product")
 */
class FeaturedProduct
{ ... }

现在我明白了:

在呈现模板期间抛出了异常:

  

(" SQLSTATE [42S02]:未找到基本表格或视图:1146表格' myapp.FeaturedProduct'在MyApp :: layout_user_2_col.html中不存在")。 37号树枝。

MyApp/Resources/views/layout_user_2_col.html.twig:37 
{% render "MyApp:FeaturedProduct:random" %}

文件MyApp / Resources / views / FeaturedProduct / random.html.twig存在。

看起来twig正在使用表名作为模板的路径而不是控制器的名称。

2 个答案:

答案 0 :(得分:1)

好像你还没有更新架构。

使用以下命令查看应该进行哪些更改以同步架构和实体注释:

  

app / console doctrine:schema:update --dump-sql

并运行以下命令以实际进行此更改

  

app / console doctrine:schema:update --force

答案 1 :(得分:1)

我发现了错误。

我在我的FeaturedProduct存储库中的本机doctrine查询中使用了表的名称。改变这个以取名表动态解决了这个问题。