Comment Remplacer Drupal Vues de la Requête?
Comment puis-je remplacer un points de Vue 3 requête avec une requête SQL personnalisée dans le code?
Vues 3 est encore en alpha. Êtes-vous sûr que les Vues 2 ne peut pas faire ce que vous voulez?
Oui, les points de Vue 3 est une exigence. Vues 3 semble être relativement mature à ce point dans mon expérience.
Pouvez-vous développer? Je veux dire, si vous allez pour annuler la requête, alors pourquoi utiliser des Vues à tous?
Un exemple serait le cas si un composant a été initialement construit comme un point de vue thématique, dans cette forme, puis plus tard, sur les exigences de changement, de sorte que la requête qui est nécessaire est trop compliqué pour des Vues de créer. Il serait bien de remplacer simplement la requête de la vue, en faisant en sorte que le style de la sortie n'est pas affectée.
Oui, les points de Vue 3 est une exigence. Vues 3 semble être relativement mature à ce point dans mon expérience.
Pouvez-vous développer? Je veux dire, si vous allez pour annuler la requête, alors pourquoi utiliser des Vues à tous?
Un exemple serait le cas si un composant a été initialement construit comme un point de vue thématique, dans cette forme, puis plus tard, sur les exigences de changement, de sorte que la requête qui est nécessaire est trop compliqué pour des Vues de créer. Il serait bien de remplacer simplement la requête de la vue, en faisant en sorte que le style de la sortie n'est pas affectée.
OriginalL'auteur markdorison | 2010-11-15
Vous devez vous connecter pour publier un commentaire.
De ce que je comprends, vous pouvez utiliser hook_views_query_alter de modifier la requête. Je suppose que vous pouvez également l'utiliser pour remplacer la requête. Voici quelques hook_views_query_alter exemples, pour vous aider à démarrer:
OriginalL'auteur Matt V.
Ce pourrait ne plus être pertinentes pour vous, mais il y a ce qui semble être une discussion utile sur Drupal.org au La mise en œuvre de requête SQL personnalisée pour les Vues /Filtres qui semble répondre à ma question similaire.
En particulier, la première affiche a suggéré de fixation à crochet
views_views_pre_execute
, dont quelqu'un d'autre a mentionné peut être mis dans un module personnalisé comme:Et une autre affiche mentionné mySQL Vues et Assistant Tableau (lien direct), bien qu'ils ne mentionnent qu'il est important de garder à l'esprit cet article à propos de mySQL points de Vue de la performance
C'est certainement la peine de lire tout le thread sur Drupal.org, même si, comme je l'ai trouvé vraiment utile; j'espère que quelqu'un d'autre le fasse aussi.
Mise à jour: en Effet, c'est précisément ce que nous sommes en train de faire — primordial
views_views_pre_execute
dans un module personnalisé pour injecter de nouvelles SQL avant, il est à la base de données. J'avais ouvert un similaire (mais plus précis) question sur Drupal.SE au Requête lente avec un grand jeu de données de Drupal vues préférable de traiter dans SQL ou PHP?, qui pourrait vous être utile.OriginalL'auteur Owen Blacker
Si vous voulez exécuter SQL personnalisé (que les Vues ne peuvent pas générer), par exemple, des champs calculés, ou compliqué jointures SQL, puis ce que vous êtes après est un module personnalisé.
Voir drupal pour un guide pour vous aider à démarrer
OriginalL'auteur wiifm