1

私はまだSymfonyとDoctineを理解しているところですが、これは単純すぎるように聞こえるかもしれません。

私は現在、2つの基本的なエンティティを持っています:(WebSite持っているidcanonicalUrlプロパティ)そしてJob1つのプロパティとして、を持っていWebSiteます。

AJobには1つWebSiteあります; aWebSiteは多くのsによって参照できますJob。両方とも同じ名前空間の下にあります。

ここで関連するのはJobエンティティです。

/**
 * 
 * @ORM\Entity
 */
class Job
{
    /**
     * 
     * @var integer
     * 
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     *
     * @var WebSite
     */
    protected $website;
}

データベース用語では、永続化されたものは、関連するのをJob格納する必要があります。idWebSite

上記に変更を加えることなく、を呼び出すと、単一のフィールドで名前がphp app/console doctrine:migrations:diff付けられたテーブルの新しい移行が生成されます。Jobid

Job::websiteDoctrineが整数フィールドを作成しidWebsiteオブジェクトの値を取得することを認識しているように注釈を付けるにはどうすればよいですか?

4

1 に答える 1

2

関係を明示的に定義する必要があります。最短は

/**
 * @ORM\Entity
 */
class Job
{
    /**
     * @var WebSite
     *
     * @ORM\ManyToOne(targetEntity="Website")
     */
    protected $website;
}

ただし、ニーズに合わせて関係を微調整したい場合は、アノテーション参照ManyToOneを参照してください(JoinColumnこの特定の場合)。アソシエーションマッピングに関する非常に包括的な記事もあり、興味深いと思うかもしれません。

于 2012-07-13T17:36:57.883 に答える