@OneToOne使用声明 - 教义2

2022-08-30 22:39:59

我有一个带有“产品”的表和另一个带有“注释”的表。每个产品都可以有或没有一些注意事项。我只需要笔记就知道它们被引用到哪个产品,但产品不需要知道它的笔记。我认为这应该是我的代码:

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;
// ...
}

但它给出了一个错误:[Doctrine\Common\Annotations\AnnotationException]

[语义错误]属性 EM\MyBundle\ Entity\Notes::$products 中的注释“@OneToOne”从未导入。您是否忘记为此注释添加“use”语句?

你能帮我解决这个问题吗?


答案 1

我想你本来是应该用的...@ORM\OneToOne

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

答案 2

推荐