Я пытаюсь изменить условие where запроса views. до сих пор мне удавалось изменять «заказ» , но я не знаю, как изменить условие «где» . Я хочу проверить search_term и, если он был в верхнем регистре, преобразовать его в нижний регистр, чтобы запрос мог его найти. также есть некоторые специальные символы в моем языке (персидском), которые мне нужно заменить перед выполнением запроса. Кто-нибудь может мне помочь с чего начать или какие хуки или views_handlers использовать?
<?php
/**
* Implementation of hook_views_query_alter
* @param type $view
* @param type $query
*/
function nashreneydev_views_query_alter(&$view, &$query) {
//krumo($query);
//krumo($view);
if ($view->name == 'custom_search') {
$search_term = $view->exposed_raw_input['combine'];
**//$query->where[0]['conditions'][0]['field']= "?????";**
$view->query->orderby[1]['field'] = "CASE node_type WHEN 'product_display' THEN 1 ELSE 2 END";
$view->query->orderby[1]['direction'] = "ASC";
$view->query->orderby[0]['field'] = "CASE node_title WHEN '".$search_term."' THEN 1 ELSE 2 END";
$view->query->orderby[0]['direction'] = "ASC";
//krumo($view->query->orderby);
}
}
?>
Результат разработки, где условие, как следовать прямо сейчас. : views_combine равен% s%.
CONCAT_WS ('', node.title, '', field_data_body.body_value, '', field_data_field_author.field_author_target_id, '', field_data_field_translator.field_translator_target_id, '', field_data_field_book_com_book) теги
@inheritdoc
Ответы:
Вы можете получить доступ к содержимому условия where, изменив его значение:
Довольно похоже на то, что вы сделали с Orderby. Также вы можете добавить пользовательские условия ( https://api.drupal.org/api/views/plugins%21views_plugin_query_default.inc/function/views_plugin_query_default%3A%3Aadd_where/7 и https://api.drupal.org/api/ views / plugins% 21views_plugin_query_default.inc / function / views_plugin_query_default% 3A% 3Aadd_where_expression / 7 )
источник
Чтобы добавить новое предложение where, которое вы можете использовать, add_where
Например :
источник
источник
Попробуй это,
источник
Вы можете использовать так же, как
источник