我有一个有效的应用程序。现在我想将我的实体的表名从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正在使用表名作为模板的路径而不是控制器的名称。
答案 0 :(得分:1)
好像你还没有更新架构。
使用以下命令查看应该进行哪些更改以同步架构和实体注释:
app / console doctrine:schema:update --dump-sql
并运行以下命令以实际进行此更改
app / console doctrine:schema:update --force
答案 1 :(得分:1)
我发现了错误。
我在我的FeaturedProduct存储库中的本机doctrine查询中使用了表的名称。改变这个以取名表动态解决了这个问题。