2016-05-01 26 views
0

私はDoctrineのエンティティでOneToMany関係を持っているとき、私は私がmappedBy注釈に入れているかを正確に、教義2とsymfonyの3をSymfony&Doctrine2: `mappedBy`アノテーションの値は?

を学ぶのですか?

  • 現在のエンティティのテーブル名はですか?
  • またはエンティティのショートカットですか?
  • 実際のクラス名ですか?

    <?php 
    namespace AppBundle\Entity; 
    
    /** 
    * @ORM\Entity 
    * @ORM\Table(name="blog_category") 
    */ 
    class Category 
    { 
        // ... 
    
        /** 
        * @ORM\OneToMany(targetEntity="Article", mappedBy="category") 
        */ 
        private $articles; 
    
        // ... 
    
    } 
    

    なぜ"カテゴリ" mappedByため正しい値は次のとおりです。

は、この単純な例を想像してみ?なぜそれが"blog_category"または"カテゴリ"(大文字の "C")ですか?または"AppBundle:カテゴリ"

答えて

1

今私はそれを理解しました。これは、ほぼすべての状況で、(確かに他のORM/ODMのために適用することもできる)、あなたが教義に行うことができますほとんどすべてを補完を与えるために

enter image description here

0

:-)の関連エンティティクラス変数の名前です。 (QueryBuilder、findByメソッドなど)プロパティの名前ではなく、の列の名前を使用します。

理由は非常に簡単です。ORMはオブジェクトやそのプロパティを処理し、データベースエンジンやその他のものに関係なく、実際のテーブルとその列を抽象化します。

関連する問題