Doctrine2: O que há de errado com a associação entre essas entidades?
stou tentando trabalhar com exemplos simples para ver todas as alterações no Doctrine
Observe os seguintes trechos de entidade:
VCat.php
namespace Application\Models;
/**
* @Entity
* @Table(name="v_cat")
*/
class VCat
{
/**
* @Id @Column(type="bigint")
* @GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @OneToMany(targetEntity="VScat", mappedBy="vCat") )
*/
private $vScats;
namespace Application\Models;
VScat.php
namespace Application\Models;
/**
* @Entity
* @Table(name="v_scat",indexes={@index(name="FK_v_scat",columns={"vcatid"})})
*/
class VScat
{
/**
* @Id @Column(type="bigint")
* @GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ManyToOne(targetEntity="VCat", inversedBy="vScats")
* @JoinColumn(name="vcatid", referencedColumnName="id")
*/
private $vCat;
vcatid
é a coluna Chave estrangeira na tabela v_scat
Esta é a consulta que estou tentando executar:
$categories = Zend_Registry::get('em')
-> createQuery('select c.name, sub.name as sub_name from \Application\Models\VCat c JOIN c.VScat sub WHERE sub.active = 1 and c.active = 1 and c.id = sub.vcatid')
-> getResult();
E este é o erro:
(string:130) [Semantical Error] line 0, col 69 near 'sub WHERE sub.active': Error: Class Application\Models\VCat has no association named VScat
Parece certo, mas obviamente estou perdendo alguma cois
ATUALIZA Agora recebo esse erro, que se refere ao nome da coluna da tabela no mysql. Isso está incorreto? Pensei que precisava informar ao Doctrine de alguma forma que essa propriedade pertence a esse campo no banco de dado
Error: Class Application\Models\VScat has no field or association named vcatid