web-dev-qa-db-ja.com

views_pre_executeの使用方法

ビューを介してサブクエリを実行しようとしていますが、この呼び出しが見つかりました。動作しません。これが私がそれをどのように使っているかです

function module_name_custom_views_pre_execute(&$view) {
    if($view->name=="view_name") {
            if($view->build_info['query_args'][1]==0) {
            $view->build_info['query']="my subquery";

                //echo ($view->build_info['query'] );
                //var_dump($view);
            }
    }
}

テストせずに、$ view-> build_info ['query']をビューで生成されたクエリに置き換えてみました。結果を表示する代わりに、空白のページが表示されます。他に自分で入力したクエリも、空白のページになります。

私はそのようなクエリを書いています:

$ view-> build_info ['query'] = "SELECT nid FROM node WHERE node.status = '1'";

したがって、配列オブジェクトの値を割り当てているのではなく、他のdb呼び出しと同じようにクエリを記述しています。オブジェクトを作成する方法でクエリを作成する必要がありますか?だから、このようなものを開始するには:

["build_info"]=> array(3) { 
    ["query"]=> object(SelectQuery)#752 (21) { 
        ["fields":protected]=> array(4) { 
            ["nid"]=> array(3) { 
                ["field"]=> string(3) "nid" 
                ["table"]=> string(4) "node" 
                ["alias"]=> string(3) "nid" } 
        ["node_created"]=> array(3) { 
            ["field"]=> string(7) "created" 
            ["table"]=> string(4) "node" 
            ["alias"]=> string(12) "node_created" } 
        ["og_og_membership_label"]=> array(3) { 
            ["field"]=> string(5) "label" 
            ["table"]=> string(16) "og_og_membership" 
            ["alias"]=> string(22) "og_og_membership_label" } 
        ["node_title"]=> array(3) { 
            ["field"]=> string(5) "title" 
            ["table"]=> string(4) "node" 
            ["alias"]=> string(10) "node_title" } }

ビューにサブクエリを実装する別の方法はありますか?

Drupal 7ビュー3を使用

3
user975044

また、チェックアウト http://drupal.org/sandbox/Fabianx/1184598 は、ビューにサブクエリを追加しているためです。これはまさにあなたがやろうとしていることです。

2
mikeytown2

ここにpre_execute()の例がたくさんあります http://drupal.org/node/409808 役立つかもしれません。

1
Jimajamma