2012-03-02 5 views
1

私はこれについてgoogleで検索しており、答えを見つけることができません。私はSymfonyを初めて使っています。いくつかの場所で私はschema.ymlについて聞き、それを使ってすべてのテーブルを作成することができます。しかしSymfony2では、どこでそのファイルを作成しますか?次のページ:http://symfony.com/doc/2.0/book/doctrine.htmlは、実際にはその質問に答えておらず、Symfonyのページからです。dbalとsymfony2

この質問に答えるドキュメントはありますか? Symfony1.xについては、schema.ymlファイルを作成してから、create shemaコマンドを実行してすべてのテーブルなどを作成できると聞きました。今はデータベースを作成できますが、テーブルを作成するにはどうすればいいですか? Symfony2ではどこで定義しますか?

答えて

2

Symfony2では、エンティティごとにマッピングエンティティを定義する必要があります。アノテーション、YAML、XMLマッピングの3種類のマッピングがあります。

あなたがリンクしているSymfonyのページは、この質問に対する質問に答えています。たとえば、あなたがMapping sectionになった場合、あなたはこの段落が表示されます。Doctrineがこれを行うことができるように

について、あなただけの「メタデータ」を作成する必要があり、または教義を伝えた構成正確にどのようにProductクラスそのプロパティをデータベースにマップする必要があります。このメタデータはアノテーションによってProductクラスの内部を直接YAML、XMLまたは含む、いくつかの異なるフォーマットで指定することができます。

次に、あなただけの少し下に行く場合は、次の3つのマッピングオプションを持つタブ付きペインを参照してください。 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になります。複数のエンティティを定義するには、複数のファイルを複数定義する必要があります。

次の手順では、データベーススキーマを作成します。お使いの設定が良いですが、あなたはそれぞれのデータベースをドロップして作成するには、次のコマンドを使用しますと仮定:

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

次に、スキーマを移入するには、このコマンドを使用する必要があります。

php console doctrine:schema:update --force 

ドキュメントをDoctrineため他のマッピング情報や、Doctrine経由でSymfony2でデータベースとのやりとりに必要なものをすべて調べる場所です。

よろしく、
マット

+0

ありがとう!まさに私が探していたもの。私はそのページも見ましたが、何らかの理由であなたが説明したようにすべてを記述していなかったのです。 – KVISH

+0

問題はありませんが、場合によっては説明する方法が異なる場合があります。ハッピーコーディング:) – Matt

関連する問題