Я пытаюсь выработать базовое соединение в запросе для MySQL-таблиц. Прочитав документацию и некоторые вопросы о Stackoverflow, я все еще не могу заставить его работать ...
Ошибка:
Сообщение: [Семантическая ошибка], строка 0, столбец 74 рядом с 'o': Ошибка: Класс Client_Model_Client не имеет связи с именем Contact_Model_Contact
Код здесь, мои модели и запрос, над которым я работаю:
Модель клиента
<?php
/**
* @Table(name="client_clients")
* @Entity(repositoryClass="Client_Model_ClientRepository")
*/
class Client_Model_Client {
public function __construct()
{
$this->contacts = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* @var integer $id
* @Id @Column(type="integer")
* @GeneratedValue
*/
private $id;
/**
* @var string $name
* @Column(type="string")
*/
private $name;
/**
* @var string $address
* @Column(type="string")
*/
private $address;
/**
* @var string $comment
* @Column(type="string")
*/
private $comment;
/**
* @var integer $account_id
* @Column(type="integer")
*/
private $account_id;
/**
* @var integer $contact_id
* @Column(type="integer")
*/
private $contact_id;
/**
* @var string $created_at
* @Column(type="string")
*/
private $created_at;
/**
* @var contact_data $contact_data
* @Column(name="contact_data", type="integer", nullable=false)
* @OneToMany(targetEntity="Contact_Model_Contact", mappedBy="contact_data")
* @JoinColumn(name="contact_id", referencedColumnName="id")
*/
private $contact_data;
... (getters and setters)
Модель Контакт
<?php
/**
* @Table(name="contact_contacts")
* @Entity(repositoryClass="Contact_Model_ContactRepository")
*/
class Contact_Model_Contact {
/**
* @var integer $id
* @Id @Column(type="integer")
* @GeneratedValue
* @ManyToOne(targetEntity="Client_Model_Client", mappedBy="contact_data")
*/
private $id;
/**
* @var string $name
* @Column(type="string")
*/
private $name;
/**
* @var string $email
* @Column(type="string")
*/
private $email;
/**
* @var string $phone
* @Column(type="string")
*/
private $phone;
/**
* @var integer $address
* @Column(type="string")
*/
private $address;
/**
* @var string $comment
* @Column(type="string")
*/
private $comment;
/**
* @var string $created_at
* @Column(type="string")
*/
private $created_at;
/**
* @var integer $contact_id
* @Column(type="string")
*/
private $contact_id;
Запрос
$qb = $this->_em->createQueryBuilder()
->select('i, o')
->from('Client_Model_Client', 'i')
->join('i.Contact_Model_Contact', 'o');
$query = $qb->getQuery();
$roles = $query->getResult();
Zend_Debug::dump($roles); die;
Что я делаю не так?
Как это должно работать?