我有关于学说2中的关联问题 我有两个看起来相同的关联。一个工作正常,第二个以奇怪的方式工作。我稍后再解释一下。学说 - 其中一个协会不能正常工作
这里是我的主要实体 - 产品:
**
* Product
*
* @ORM\Table(name="product", indexes={
* @ORM\Index(name="category_index", columns={"category_id"}),
* @ORM\Index(name="partner_index", columns={"partner_id"})
* })
* @ORM\Entity
*/
class Product
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=false)
*/
private $name;
/**
* @var Category
*
* @ORM\ManyToOne(targetEntity="Category")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
private $categoryId;
/**
* @var Partner
*
* @ORM\ManyToOne(targetEntity="Partner")
* @ORM\JoinColumn(name="partner_id", referencedColumnName="id")
*/
private $partnerId;
}
分类实体:
/**
* Category
*
* @ORM\Table(name="category")
* @ORM\Entity
*/
class Category
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="category_name", type="string", length=100, nullable=false)
*/
private $categoryName;
}
合伙实体:
/**
* Partner
*
* @ORM\Table(name="partner")
* @ORM\Entity
*/
class Partner
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=150, nullable=false)
*/
private $name;
}
正如你可以看到我有两个相同的关联:
产品#categoryId
产品#PARTNERID
第一单的categoryId作品,因为它应该,但第二单PARTNERID并不:
我注意到的第一件事是,这种理论创建代理类与合作伙伴的实体, 而实体类不需要代理类工作,所以 这一个不正常工作。我刚开始与主义,所以我可能是 错误。
我在合作伙伴表中有4条记录。当我尝试手动修改产品 纪录,在PARTNER_ID场我不能设置1-4,我可以设置 是这样的:
(empty)
1 - 1
2 - 2
3 - 3
4 - 4
(empty)
1 - 1
2 - 2
3 - 3
4 - 4
我第一次看到这样的事情。
而最后一件事,我注意到:
$query = $em->createQuery('
SELECT pp.name, p.id
FROM Application\Entity\Product AS p
LEFT JOIN Application\Entity\Partner AS pp WITH p.partner_id = pp.id GROUP by p.partner_id
');
$items = $query->getResult();
显示我的错误:
Doctrine\ORM\Query\QueryException: [Semantical Error] line 0, col 148 near 'partner_id =': Error: Class Application\Entity\Product has no field or association named partner_id in
感谢您的帮助和提示。
编辑
所以,问题是。为什么Doctrine为Partner Entity创建代理类,但不是为Category创建代理类?