La Doctrine de la Classe “..\..” n'a pas d'association nommée “...”
J'espère que vous pourrez m'aider avec ce problème car je ne peux vraiment pas voir ce qui est mauvais ici.
J'ai 2 entités: RokZaPrijavuProjekta ET Predmet.
RokZaPrijavuProjekta:
/**
* @ORM\Table(name="rok_prijava_projekta")
* @ORM\Entity(repositoryClass="JP\AdminBundle\Repository\RokZaPrijavuProjektaRepository")
*/
class RokZaPrijavuProjekta
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer $id_predmet
* @ORM\ManyToOne(targetEntity="Predmet")
* @ORM\Column(name="id_predmet", type="integer")
*/
private $predmet;
/**
* @var date $od
* @ORM\Column(name="od", type="date")
*/
private $od;
/**
* @var date $do
* @ORM\Column(name="do", type="date")
*/
private $do;
/**
* @var string $info
* @ORM\Column(name="info", type="string", length=120)
*/
private $info;
}
Predmet entité code:
/**
* @ORM\Table(name="predmeti")
* @ORM\Entity(repositoryClass="JP\AdminBundle\Repository\PredmetRepository")
*/
class Predmet
{
/**
* @var integer $id
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $sifra
* @ORM\Column(name="sifra", type="string", length=64)
*/
private $sifra;
/**
* @var boolean $vidljiv
* @ORM\Column(name="vidljiv", type="boolean")
*/
private $vidljiv;
}
Référentiel méthode:
$q = $this->createQueryBuilder('r')
->select('rzpp')
->where('rzpp.predmet = :predmet')
->from('JPAdminBundle:RokZaPrijavuProjekta', 'rzpp')
->leftJoin("rzpp.predmet", "p")
->setParameter('predmet', $predmet)
->getQuery();
Les deux getters et setters pour tous les membres du groupe sont définis correctement.
Maintenant, "RokZaPrijavuProjekta" a une clé étrangère référence à "Predmet", beaucoup de ces "RokZaPrijavuProjekta" peut avoir les mêmes "Predmet".
Je veux créer unidirectionnel ManyToOne relation pour cet objet, mais reçois exception levée:
Classe JP\AdminBundle\Entity\RokZaPrijavuProjekta a pas d'association nommée predmet
Je suis allé partout La Doctrine de la documentation, mais a constaté que c'est la meilleure façon de définir unidirectionnel plusieurs-à-un rapport.
Avez-vous une idée de ce qui pourrait être un problème ici?
Mise à JOUR
- Ajouté Predmet entité code...
- Ajouté Référentiel méthode
Merci beaucoup!
Ce qui concerne,
Jovan
OriginalL'auteur Jovan Perovic | 2011-08-01
Vous devez vous connecter pour publier un commentaire.
Pouvez-vous montrer Predmet entité code?
Ou juste essayer ce code:
Hey Inori, j'ai essayé de mettre bidirectionnel relation comme vous l'avez suggéré, mais il ne fonctionne toujours pas. 🙁 Peut-être qu'il a quelque chose à faire avec mon référentiel de code de la méthode? J'ai édité mon post à nouveau inclure aussi... Merci!
Inori, je ne peux pas vraiment dire ce qui était le problème, mais maintenant il est parti. J'ai littéralement copié/collé votre code et cette fois ça a fonctionné. Site-note: lors de l'exécution de
app\console doctrine:schema:create --dump-sql
sur une entité distincte manager, j'ai remarqué que la clé étrangère n'a pas été créé entre ces 2 tables. Sans doute était-correction de quelques fautes (mais pas sûr).... :-/ En tout cas... merci beaucoup! 🙂Haha, content d'avoir pu aider(?) Je suppose 😀
OriginalL'auteur Inoryy
Bien, la nuit dernière, j'ai rencontré le même problème à nouveau. Cette fois, j'ai pris un peu de temps à comprendre pourquoi il a commencé à travailler donc du coup la dernière fois (au moment de ma question ci-dessus).
Donc, la ligne du bas et solution le problème:
Dans ma classe d'entité, j'ai eu les deux
@Column
et@ManyToOne
annotation où j'ai utilisé@Column
pour définir un nom de colonne dans la base de données et@ManyToOne
pour définir la relation. Le point est que vous devez supprimer@Column
d'annotation et de le remplacer avec@JoinColumn
donc de définir à la foisname
etreferencedColumnName
attributs. Vérifiez ces extraits:Cela ne fonctionnera pas:
(avec ou sans
@JoinColumn
)Mais ce sera:
J'espère que ce sera utile à quelqu'un...
Cheers!
Merci jperovic, deux ans plus tard, et la solution est toujours d'aider les gens. Été tourner en rond jusqu'à ce que j'ai trouvé.
Content d'avoir pu avoir en aucune façon 😉
Google m'a emmené ici et m'a sauvé des heures.
ne sais pas quoi faire avec le même message d'erreur jusqu'à ce que je trouve votre explication, vous le méritez bien plus de crédit à M. Perovic!
OriginalL'auteur Jovan Perovic
Complément d'Info, le format des commentaires n'importe
J'ai perdu quelques heures juste pour savoir que j'ai raté un astérisque dans les commentaires
Cela ne fonctionne pas
toutefois cela fonctionne
avis le manque astérisque (*) à la première ligne du premier exemple
OriginalL'auteur Ello