2012-03-02 71 views
1

我一直在谷歌搜索這個,我無法找到答案。我是Symfony的新手。在有些地方我聽說了schema.yml,你可以用它創建所有的表格。但在Symfony2中,我們究竟在哪裏創建該文件?以下頁面:http://symfony.com/doc/2.0/book/doctrine.html,實際上並沒有從Symfony頁面回答該問題及其問題..Symfony2與dbal

是否有任何文檔可以回答此問題?對於Symfony1.x,我聽說你可以創建一個schema.yml文件,然後運行一個create shema命令來創建所有的表格等等。現在我可以創建數據庫,但是如何創建表格?我在哪裏可以在Symfony2中定義它們?

回答

2

在Symfony2中,您需要按實體定義映射實體。有三種不同的映射:Annotation,YAML和XML映射。

您正在鏈接的Symfony頁面確實回答了這個問題。例如,如果你到了Mapping section,你會看到這樣一段話:

教義是能夠做到這一點,你只需要創建「元數據」,或配置告訴主義究竟是如何的產品類其屬性應該映射到數據庫。這種元數據可以在許多不同的格式,包括產品類中YAML,XML或直接通過註釋指明:

然後,如果你去下面只是有點,你看到三個映射選項卡式窗格。點擊YAML標籤,你會看到:

# src/Acme/StoreBundle/Resources/config/doctrine/Product.orm.yml 
Acme\StoreBundle\Entity\Product: 
    type: entity 
    table: product 
    id: 
     id: 
      type: integer 
      generator: { strategy: AUTO } 
    fields: 
     name: 
      type: string 
      length: 100 
     price: 
      type: decimal 
      scale: 2 
     description: 
      type: text 

這片YAML的是映射的信息,位於此位置:src/Acme/StoreBundle/Resources/config/doctrine/EntityName.orm.ymlEntityName部分應該更改爲您自己的實體的名稱。如果您的實體類是Product,則它將是Product.orm.yml。您將需要定義多個.yml文件來定義多個實體。

下一步是填充數據庫模式。假設你的配置還是不錯的,你會使用這些命令分別下降並創建數據庫:

php console doctrine:database:drop --force 
php console doctrine:database:create 

然後,填充模式,你必須使用這個命令:

php console doctrine:schema:update --force 

的文檔Doctrine是檢查Symfony2中通過Doctrine進行數據庫交互所需的其他映射信息和所有東西的地方。

問候,
馬特

+0

謝謝!正是我在找什麼。我也看過那個頁面,但由於某種原因,它沒有按照你描述的方式描述所有的東西。 – KVISH 2012-03-02 01:57:07

+0

沒問題,有時用不同的方式來解釋的東西可以提供幫助。快樂編碼:) – Matt 2012-03-02 15:30:23