2012-06-11 90 views
2

我有一個工作的應用程序。現在我想將我的實體的表名從CamelCase更改爲underscore_case。Symfony2,樹枝模板和@ORM 表

舊代碼:

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

每一件事情的工作

新代碼:

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

現在,我得到:

一個例外模板的渲染過程中被拋出:

( 「SQLSTATE [42S02]:基表或視圖未找到:1146表 'myapp.FeaturedProduct' 不存在」)在MyApp的:: layout_user_2_col.html.twig在管線37

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

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

它看起來像樹枝使用表名稱的模板路徑,而不是控制器的名稱。

回答

1

我發現了錯誤。

我在我的FeaturedProduct存儲庫中使用了本地原則查詢中表的名稱。改變這個以動態表名來解決問題。

1

好像你還沒有更新你的模式。

使用下面的命令來看看有什麼變化應該以同步的模式和實體的註釋進行:

應用程序/控制檯學說:架構:更新自卸SQL

並運行以下命令來actualy使這個改變

應用程序/控制檯學說:架構:更新--force

+0

執行這兩個命令給我'沒什麼可更新 - 你的數據庫已經與當前實體元數據同步。 如果我改變我的模型,我總是執行'doctrine:database:drop;學說:數據庫:創建;學說:模式:創建;緩存:clear' – huzi