Рейтинг:0

Как изменить запрос просмотра даты окончания для API поиска

флаг cn
blu

Я пытаюсь изменить открытый фильтр даты в созданном мной представлении, которое использует solr search api. Я заметил, что фильтр даты окончания не работает, если я не добавляю день к дате окончания. так, например, если у меня есть следующие узлы:

заглавие Дата начала Дата окончания
а 01/01/2020 01/01/2021
б 02/01/2020 02/01/2022
с 03/01/2020 03/01/2023

и я использую открытый фильтр, чтобы вернуть дату окончания 01.02.2022 с оператором меньше или равно, он не будет возвращать узлы a и b, если я не изменю дату окончания на 02.02.2022.

Я застрял, пытаясь понять, как изменить hook_views_query_alter(), чтобы добавить время (я предполагаю, что это неправильно).

функция my_module_views_query_alter (ViewExecutable $ view, QueryPluginBase $ запрос) {
  if ($view->id() == 'my_solr_search' && !empty($view->exposed_raw_input['field_end_date'])) {
    $query->addWhere(0, 'field_end_date', $view->exposed_raw_input['field_end_date']. '23:59', '<=');
  }
}

РЕДАКТИРОВАТЬ: Это почти работает, если в открытом фильтре конечной даты нет ввода, однако я не могу этого сделать, поскольку фильтр зависит от пользовательского ввода:

функция my_module_views_query_alter (ViewExecutable $ view, QueryPluginBase $ запрос) {
  if ($view->id() == 'my_solr_search' && !empty($view->exposed_raw_input['field_end_date'])) {
    // Жестко запрограммировать дату окончания, так как входных данных нет.
    $end_date = DateTime::createFromFormat('m/d/Y H:i:s', $view->exposed_raw_input['field_end_date']. ' 23:59:59');
    $group_id = $query->setWhereGroup('И', NULL, 'где');
    $query->addWhere($group_id, 'field_end_date', $end_date->format("U"), '<=');
  }
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.