2011-10-10 6 views
1

Je basicky suivi ce tutoriel http://www.zendcasts.com/one-to-many-with-doctrine-2/2011/03/ à l'étape (les codes sources peuvent être téléchargés à partir de là). Et tout fonctionne très bien, j'ai donc 2 Entités - Achat et Utilisateur. Si je fais une recherche tout utilisateur est très bien, mais si je fais une recherche d'achat, comme ceci:Zend Framework, Doctrine 2 @ManyToOne

$entityManager->createQuery('select p from ZC\Entity\Purchase p where p.id = 1')->execute(); 

j'obtenir une erreur fatale:

Fatal error: require() [function.require]: Failed opening required 'C:\xampp\htdocs\CoChces\application/../library/CC/Entity/Proxy\CCEntityCategoryProxy.php' (include_path='C:\xampp\htdocs\CoChces\application/../library;C:\xampp\htdocs\CoChces\library;.;C:\xampp\php\PEAR') in C:\xampp\htdocs\CoChces\library\Doctrine\ORM\Proxy\ProxyFactory.php on line 85 

Mais si je commente ces lignes en Achat:

/** 
* 
* @var User 
* @ManyToOne(targetEntity="User") 
* @JoinColumns({ 
* @JoinColumn(name="user_id", referencedColumnName="id") 
* }) 
*/ 
private $user; 

Everithing fonctionne très bien. Il doit donc y avoir un problème avec l'annotation @ManyToOne. Quelqu'un sait quoi faire avec? Peut-être une solution de contournement?

Merci beaucoup de réponses ..

J'utilise PHP 5.3.8

+0

Quelle version de PHP utilisez-vous? Doctrine 2 nécessite PHP 5.3 ... – dinopmi

+0

Oui, j'utilise PHP 5.3 Je peux interroger ManyToMany avec easy, mais ManyToOne et OneToOne semblent être le problème .. – user987220

+0

Juste pour l'enregistrement, beaucoup de vidéos de zendcasts sont tout simplement fausses, ou laisser de côté les détails, ce qui fait que le code final ne fonctionne même pas correctement. –

Répondre

0

Couple de choses ...

  1. Votre syntaxe d'annotation ne semble pas être correct . Essayez

    /** 
    * @var User 
    * @ManyToOne(targetEntity="User") 
    */ 
    private $user; 
    

    @JoinColumns n'apparaît nulle part dans la documentation. En outre, l'annotation @JoinColumn est redondante lorsque vous utilisez les valeurs par défaut. Voir http://www.doctrine-project.org/docs/orm/2.1/en/reference/association-mapping.html#many-to-one-unidirectional

  2. Votre requête DQL fait référence à la racine de l'espace de noms ZC mais le message d'erreur indique CC. Qui est correct?

+0

Merci pour les suggestions, mais il n'a pas résolu le problème, je J'imagine qu'il y a un problème avec les bibliothèques Doctrine 2 obsolètes, John utilise "2.0.0RC2" donc il doit y avoir un bug de retour, ou il y a un bug dans la colle "Bisna" (aussi obsolète) qui fait fonctionner ZF1 avec Doctrine2 .. va essayer les deux et j'écrirai une solution si j'en trouve une .. – user987220

+0

@ user987220 Je commencerais par utiliser au moins la dernière version stable de Doctrine 2.1. Il ne devrait pas y avoir de problèmes avec le plugin de ressource d'application Bisna. Tout commentaire sur le point # 2 – Phil

+1

Eh bien, le problème était avec la ressource Bisna, il était obsolète, il peut être trouvé un nouveau sur guithhermeblanco github ici: https://github.com/guilhermeblanco/ZendFramework1-Doctrine2 Et quant à la configuration de Je suggère: http://www.kurttest.com/zfa/bisna.html En d'autres termes, problème résolu, merci à tous – user987220

Questions connexes