Drupal 7 Views 3 Неустранимая ошибка: невозможно получить доступ к защищенному свойству SelectQuery :: $ where - PullRequest
1 голос
/ 15 ноября 2011

Я получаю эту ошибку при попытке изменить значение в фильтре Drupal 7 Views 3:

Fatal error: Cannot access protected property SelectQuery::$where in /Users/joe/Sites/sdgea/docroot/sites/all/modules/custom/sdge_video/sdge_video.module on line 275

Вот код, который вызывает это:

function modulename_views_pre_execute(&$view) {
  if (is_numeric($term_no)) {
        // set the filter
    $view->filter['tid']->value[$term_no] = $term_no;
        // set the query
        $view->query->where[0]['conditions'][2]['value'] = $term_no;
        // set the build info
        $view->build_info['query']->where->conditions[0]['field']->conditions[0]['field']->conditions[2]['value'] = $term_no;
        //$view->build_info['query']->where->conditions[0]['field']->conditions[0]['field']->conditions[2]['value'] = $term_no; // <-- This line specifically is causing fatality.
  }
}

Возможночасть какого-то сверхчеловеческого объекта яда яда в D7.У любого есть идеи, как я могу изменить значение фильтра в представлении представления 3 (D7).

А также запросить ответ о том, почему происходит доступ к «защищенному свойству».Я кодер.Я не хочу ничего защищенного!

Заранее спасибо!

1 Ответ

2 голосов
/ 28 марта 2012

Может быть немного поздно, но вы можете изменить его, используя hook_views_query_alter , который предназначен именно для этой цели, например:

function modulename_views_query_alter(&$views,&$query){
    //...rest of the code
    $query->where[0]['conditions'][2]['value'] = $term_no;
}
...