Doctrine 2, Natif De La Requête
Je suis en train de faire une requête native avec Doctrine 2.. mais je ne peux pas faire cela fonctionne..
$q = "SELECT * FROM user_recent_activity WHERE id = {$user->id}";
$rsm = new \Doctrine\ORM\Query\ResultSetMapping;
$query = $this->_em->createNativeQuery($q, $rsm);
$result = $query->getResult();
C'est le retour tableau vide.. je ne suis pas sûr de savoir comment il fonctionne "ResultSetMapping", mais je ne peux pas la Carte rien qu'avec cette requête, comme j'ai vu dans les exemples de la doctrine site web, parce que user_recent_activity ce n'est pas un tableau, c'est une vue comme:
id user_id type created_at
12 5 opinion 2011-02-22 23:29:00
2 2 vote 2011-01-30 14:16:51
id représenter les différents objets, donc, ne sont pas de clé étrangère..
Donc est-il possible juste pour faire un normal requête Doctrine 2 ?? .. Je deviens fou..
Grâce
Si vous avez résolu votre problème, merci de les signaler à votre question de la fermeture ou de fournir et d'accepter une réponse qui décrit votre solution.
OriginalL'auteur Raul | 2011-02-25
Vous devez vous connecter pour publier un commentaire.
Il ne devrait pas être un problème si son point de vue ou une table que vous obtenez des lignes et des colonnes à partir de votre requête.
Vous devez mapper les résultats à des personnes pour les requêtes sql à l'aide de gestionnaire de stockage amovible.
Et vous devriez avoir l'entité appropriée.
Vous pouvez vérifier http://www.doctrine-project.org/docs/orm/2.0/en/reference/native-sql.html pour des exemples plus détaillés.
Mise à JOUR:
En cas de points de vue qui contient les résultats de plus de 1 table, addJoinedEntityResult() la méthode peut être utilisée pour cartographier les résultats de leurs entités respectives. Vous devez définir les entités en conséquence et de cartographier les résultats de leurs champs.
Cette méthode sera probablement jusqu'à la fin partielle des objets, il devrait donc être utilisés avec précaution pour éviter la corruption des données.
D'informations sur l'partielle des objets: http://www.doctrine-project.org/docs/orm/2.0/en/reference/partial-objects.html
Hmm, dans ce cas, vous pouvez définir les entités liées et utiliser le addJoinedEntityResult méthode pour cartographier l'info à leurs entités. Il y a des exemples de que sur doctrine-project.org/docs/orm/2.0/en/reference/... . Je ne suis pas sûr si cela va fonctionner, cependant. Vous pouvez obtenir le même résultat sans les points de vue avec la Doctrine, mais je ne sais pas qui l'on donne le meilleur rendement, n'étant pas un expert dans le domaine.
Après avoir réfléchi, addJoinedEntityResult méthode de travail que la Doctrine n'a pas à se soucier de la nature de la requête SQL natif, se soucie uniquement de la façon dont il est mappé à les entités. Mise à jour de la réponse en conséquence.
Je crois que c'est pas bon d'ajouter un identificateur (id) en vue, peut-être même qu'il n'est pas possible, la vue peut changer, donc, l'identifiant sera différente pour les mêmes données. Donc, je ne peux pas utiliser les entités doctrine, ils ont besoin d'un identificateur de travail (c'est l'erreur qu'il apparaît). Je ne peux pas utiliser addEntityResult (c'est obligatoire, je crois), donc, ni addJoinedEntityResult ..
Eh bien.. enfin j'ai peu de changer mon point de vue, d'avoir tous les id des objets différents dans chaque ligne, et j'ai composite d'un identifiant avec ces id... Alors, maintenant, je peux utiliser une normale de l'entité et je n'ai pas besoin d'un nativeQuery.. Vraiment difficile à utiliser que dans mon problème.. de toute façon, Hakan, j'ai aprécier vos suggestions
OriginalL'auteur Hakan Deryal
Autre possibilité pour que votre problème est d'utiliser Natif requêtes en conjonction avec des scalaires résultats. Pour plus d'info , regardez cette lien, paragraphe 12.2.4. L'espoir d'être utile.
OriginalL'auteur artaxerxe
Pour aller chercher seule ligne
Pour extraire plusieurs lignes
Ici l'utilisation de sql native de la requête à la place de $sql ci-dessus.
OriginalL'auteur Alpesh Panchal