1

同じタイプのコンテンツを指す 2 つのノード参照フィールドを使用するノードからデータを取得するビューで少し苦労しています。私のパスから、引数として 1 つの文字列を取得しています。それを と呼びましょう$fruit

自分でクエリを作成する場合、作成するクエリは次のようになりますSELECT * FROM recipe WHERE (fruit_1=$fruit OR fruit_2=$fruit)。私の問題は、Drupal ビューでこれを行う方法がわからないことです。助言がありますか?

更新:私がやろうとしていたことをついに解決しました。私にとっての解決策は、 using引数Panelsと一緒に使用し、最初の引数を使用して両方の引数値を同じに設定することでした。問題または解決策を適切に説明しているかどうかはわかりませんが、より詳しい説明が必要な場合は、お気軽にお問い合わせください。ViewViews OrPanels

4

2 に答える 2

2

ビューまたはモジュール アドオン: http://drupal.org/project/views_or

非常に強力なため、デフォルトでビューに含まれている必要があります。

'begin alternatives' オプションは、基本的にクエリに '(' を配置します。'next alternative' オプションは、基本的にクエリに 'OR ' を配置します。

ビュー フィルターは、各フィールド間の「 AND 」として設定されます。これにより、「 OR 」機能が追加されます。したがって、あなたの例を使用すると、フィルターは次のようになります。

Content Type = Recipe
Begin Alternatives
Node Title = fruit_1
Next Alternative
Node Title = fruit_2
End Alternatives

複数の「次の選択肢」フィルターを使用することで、複数の Or オプションを使用できることに注意してください。各オプションは、他のフィルターの間に「 OR 」を配置します。それでもわかりにくい場合は、変更するたびにビュー ペインでクエリのプレビューを確認してください。

于 2009-12-09T17:26:57.850 に答える
1

Views UI でクエリの ... または ... 部分を実行する方法はないと思います。ただし、独自のモジュールを作成し、Views UI を使用してクエリの最初の部分を生成し、モジュールで使用してクエリの最後にhook_views_query_alter追加することができます。WHERE (fruit_1=$fruit OR fruit_2=$fruit)

詳細については、hook_views_query_alter こちらこちらをご覧ください。幸運を。

于 2009-12-09T14:42:27.113 に答える