2011-06-27 35 views
0

我試圖在MySQL表中查詢基本連接。 #2讀取documentationsomequestions後,我仍然無法得到它的工作...與Doctrine 2沒有找到的2個表之間的關聯

錯誤: 消息:語義錯誤] 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; 

我在做什麼錯? 它應該如何工作?

回答

1

你應該這樣做:

$qb = $this->_em->createQueryBuilder() 
    ->select('i, o') 
    ->from('Client_Model_Client', 'i') 
    ->join('i.contact_data', 'o'); 
相關問題