2012-08-08 6 views
15

私はProductsを持つテーブルとNotesを持つテーブルを持っています。各製品には、いくつかのノートがある場合とない場合があります。私は、彼らがどの製品に言及しているのかを知るためのメモだけが必要ですが、その製品はそのメモを知らないことが必要です。私は、これは私のコードであるべきだと思う:@OneToOne用の文を使用する - Doctrine2

namespace EM\MyBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

use EM\MyBundle\Entity\Productss; 

/** 
* @ORM\Entity 
* @ORM\Table(name="notes") 
*/ 
class Notess 
{ 
/** 
* @ORM\Id 
* @ORM\Column(type="integer") 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
protected $id; 

/** 
* @OneToOne(targetEntity="Productss") 
* @JoinColumn(name="products_id", referencedColumnName="id") 
**/ 
private $products; 
//... 
} 

namespace EM\MyBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Symfony\Component\Validator\Constraints as Assert; 

/** 
* @ORM\Entity 
* @ORM\Table(name="domains") 
*/ 
class Domains 
{ 
/** 
* @ORM\Id 
* @ORM\Column(type="integer") 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
protected $id; 
// ... 
} 

が、それはエラーを与える:[教義\共通\注釈\ AnnotationException]

[意味論的エラー]プロパティEM \ MyBundleで注釈 "@OneToOne" \ Entity \ Notes :: $ productsはインポートされませんでした。この注釈に「 」を使用するステートメントを追加することを忘れていましたか?

この問題を解決するのに手伝ってもらえますか?

答えて

51

私は、あなたが代わりに@ORM\OneToOneを使用することを意味していたと思います...

/** 
* @ORM\OneToOne(targetEntity="Productss") 
* @ORM\JoinColumn(name="products_id", referencedColumnName="id") 
*/ 
private $products; 
//... 
} 
+0

はどうもありがとうございました!それは今働いている! :) – Faery

+0

この問題は、ドキュメントの関係上、oneToMany、oneToOneまたはmanyToManyのような関係の種類に関係なく発生します。私は同じ問題を公式の文書のコピー/ペーストのみ作成しています:http://docs.doctrine-project.org/en/latest/reference/association-mapping.html –

+2

これは、教義文書があなたsymfonyは 'use Doctrine \ ORM \ Mapping(Doctrine \ ORM \ Mapping)を推奨しています。 AS ORM'名前空間アプローチを使用しているので、すべての注釈はORMをベース( '@ORM \ OneToOne')として使用します。 – qooplmao

関連する問題