relazioni Nodo in Drupal Visualizzazioni
-
18-09-2019 - |
Domanda
sto lottando un po 'con una vista che riceve i dati da un nodo che utilizza due campi di riferimento del nodo, che punta allo stesso tipo di contenuto. Dal mio percorso mi sto una stringa come argomento, chiamiamolo $fruit
.
La query che vorrei fare se stavo scrivendo la query me sarebbe qualcosa di simile SELECT * FROM recipe WHERE (fruit_1=$fruit OR fruit_2=$fruit)
. Il mio problema è che non ho ricevuto come fare questo in un Drupal View. Qualche suggerimento?
UPDATE:
Alla fine ho risolto quello che ho cercato di fare. La soluzione per me è stato quello di utilizzare Panels
insieme ad un View
usando argomenti Views Or
, e impostando entrambi i valori argomenti per la stessa utilizzando il primo argomento Panels
. Non sono sicuro se sto spiegando sia il mio problema o la mia soluzione correttamente, ma se qualcuno avrebbe bisogno di una spiegazione più da vicino, non esitate a chiedere.
Soluzione
Vista o modulo addon: http://drupal.org/project/views_or
E 'davvero dovrebbe essere incluso in Vista per impostazione predefinita, perché è così potente.
L'opzione 'iniziare alternative' pone essenzialmente un '(' nella query. L'opzione 'prossimo alternativa' pone essenzialmente la 'O' nella query. L'opzione 'alternative di fascia' essenzialmente pone un ')' nella query.
Visto filtri sono settati come 'E' tra ogni campo, questo aggiunge che la capacità 'O'. Quindi, utilizzando il vostro esempio i filtri sarebbe qualcosa di simile:
Content Type = Recipe
Begin Alternatives
Node Title = fruit_1
Next Alternative
Node Title = fruit_2
End Alternatives
Si noti che si può avere più di uno o opzioni utilizzando più filtri 'prossimo alternative', ciascuno posti una 'O' tra gli altri filtri. Se è ancora confusa, controllare l'anteprima query in vostro punto di vista riquadro dopo ogni modifica.
Altri suggerimenti
Non credo che ci sia un modo per fare la ... O ... parte della query nel Visualizzazioni UI. Tuttavia, è possibile rendere il proprio modulo e utilizzare il Visualizzazioni UI per generare la prima parte della query, quindi utilizzare hook_views_query_alter
nel modulo per aggiungere solo WHERE (fruit_1=$fruit OR fruit_2=$fruit)
alla fine della query.
Più informazioni su hook_views_query_alter
qui e qui . Buona fortuna.