Когда я пытаюсь найти объект Miejsce по идентификатору:

$m= $this->getDoctrine()
            ->getRepository('MiejsceObiektyBundle:Miejsce')
            ->find($id);

Я получаю такую ​​ошибку:

Примечание: неопределенный индекс: идентификатор в vendor / doctrine / orm / lib / Doctrine / ORM / AbstractQuery.php, строка 286 500 Внутренняя ошибка сервера - ContextErrorException

Идея и реальная связь - это

where subdomain.rid=miejsce.id and subdomain.ridType=1

Поддомен работает для многих сущностей, поэтому я не хочу иметь doctrine var от поддомена до miejsce.

ridType=1 = miejsce
ridType=2 = product
ridType=3 = other 

Я могу добавить условие subdomain.ridType = 1 в репозиторий, но есть проблема с настройкой подключения subdomain.rid = miejsce.id, потому что у miejsce нет ссылки на идентификатор для субдомена - это не нужно, чтобы субдомен имел это, но не только для 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
Developer 8 Янв 2014 в 22:51

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 - имена сущностей должны быть в единственном числе

2
domis86 8 Янв 2014 в 20:07

Попробуйте с этим:

 * @ORM\JoinColumn(name="subdomain_id", referencedColumnName="rid")
0
hizbul25 8 Янв 2014 в 19:10