当我尝试按ID找到Miejsce
实体时:
$m= $this->getDoctrine()
->getRepository('MiejsceObiektyBundle:Miejsce')
->find($id);
我收到此错误:
注意:未定义的索引:id in vendor / doctrine / orm / lib / Doctrine / ORM / AbstractQuery.php第286行 500内部服务器错误 - ContextErrorException
理念和真正的联系是
where subdomain.rid=miejsce.id and subdomain.ridType=1
子域工作许多实体 - 所以我不希望从子域到miejsce的doctrine var。
ridType=1 = miejsce
ridType=2 = product
ridType=3 = other
我可以在存储库中添加条件subdomain.ridType = 1 - 但是设置连接subdomain.rid = miejsce.id存在问题,因为miejsce没有子域的id引用 - 它不需要子域有它但不仅仅是miejsce。 ...... :)
这个想法有什么问题?可以在学说中使用吗?
Miejsce
实体:
/**
* @var integer
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToOne(targetEntity="Miejsce\DomainBundle\Entity\Subdomains")
* @ORM\JoinColumn(name="id", referencedColumnName="rid")
* @var Subdomains
*/
protected $subdomain;
Subdomain
实体:
class Subdomains
{
/**
* @var integer
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string")
* @var string
*/
private $name;
/**
* @ORM\Column(type="integer")
* @var integer
*/
private $rid;
/**
* @ORM\Column(type="integer")
* @var integer
*/
private $ridType;
答案 0 :(得分:2)
Miejsce
实体中的:
/**
* @ORM\OneToOne(targetEntity="Subdomains", mappedBy="miejsce")
*/
private $subdomain;
Subdomains
实体中的:
/**
* @ORM\OneToOne(targetEntity="Miejsce", inversedBy="subdomain")
* @ORM\JoinColumn(name="rid", referencedColumnName="id")
*/
private $miejsce;
还将Subdomains
重命名为Subdomain
- 实体名称应为单数
答案 1 :(得分:0)
试试这个:
* @ORM\JoinColumn(name="subdomain_id", referencedColumnName="rid")