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