2010-06-30 6 views
0

J'ai un rendez-vous de type de contenu avec un champ de date qui référence les nœuds du type de contenu personne à l'aide du module Nodereference. Dans la personne de type de contenu j'ai ajouté un champ Nodereferrer qui montre l'inverse de ces références (Person -> rendez-vous).Drupal: affiche uniquement le champ NodeReferrer spécifique dans les vues

Je veux maintenant créer une vue des nœuds de personne qui montre la dernière date de rendez-vous de cette personne. Je peux créer une vue des personnes avec une relation à des rendez-vous qui affiche tous les rendez-vous, mais je n'ai aucune idée sur la façon d'afficher seulement le plus récent.

Des idées sur la façon d'y parvenir?

Répondre

1

Personnellement, je n'ai pas eu beaucoup de succès avec l'utilisation de vues et de références de nœuds. Cela ne semble jamais fonctionner correctement les relations. Donc, mon conseil serait d'écrire votre propre requête. Si vous regardez here vous pouvez voir un moyen de remplacer le SQL généré par les vues, de sorte que vous obtenez toujours beaucoup de la qualité qui vient avec les vues.

D'ailleurs, je serais très intéressant de voir s'il y a une meilleure réponse que ce

+0

Merci pour l'idée. Je vais essayer si je peux mettre une requête pour cela ensemble, mais mes connaissances SQL sont très limitées. Je ne suis pas sûr de savoir comment faire une jointure où je n'ai qu'une valeur spécifique et pas toutes. –

+0

'group by' et 'max' vous y aideront. Joignez-vous à tout le groupe par nid et utilisez max pour obtenir le dernier. Vous pouvez tout mettre dans une sous-requête aussi garder tout le reste propre. –

0

Au lieu d'ajouter le champ Nodereferrer à la vue, essayez d'ajouter la relation Nodereferrer puis en ajoutant le titre de nœud (à l'aide cette relation) comme un champ. Vous devriez être en mesure de trier du plus récent au plus ancien, puis définir la vue pour être distinct afin que seule la première ligne pour chaque personne apparaît.