I'm trying to filter a date with between filter in views. If I fill only one of the two research fields it works, but if I fill them both the view returns an exception of this type:

Error: Call to undefined method Drupal\search_api\Plugin\views\query\SearchApiQuery::addWhereExpression() in Drupal\views\Plugin\views\filter\Date->opBetween() (line 164 of /var/www/teatro.it/core/modules/views/src/Plugin/views/filter/Date.php) #0 /var/www/teatro.it/core/modules/views/src/Plugin/views/filter/NumericFilter.php(242): Drupal\views\Plugin\views\filter\Date->opBetween('.field_date') #1 /var/www/teatro.it/core/modules/views/src/ViewExecutable.php(1360): Drupal\views\Plugin\views\filter\NumericFilter->query(false) #2 /var/www/teatro.it/core/modules/views/src/ViewExecutable.php(1249): Drupal\views\ViewExecutable->_build('filter') #3 /var/www/teatro.it/core/modules/views/src/ViewExecutable.php(1378): Drupal\views\ViewExecutable->build(NULL) #4 /var/www/teatro.it/core/modules/views/src/ViewExecutable.php(1441): Drupal\views\ViewExecutable->execute(NULL) #5 /var/www/teatro.it/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php(2391): Drupal\views\ViewExecutable->render() #6 /var/www/teatro.it/core/modules/views/src/ViewExecutable.php(1649): Drupal\views\Plugin\views\display\DisplayPluginBase->preview() #7 /var/www/teatro.it/core/modules/views_ui/src/ViewUI.php(602): Drupal\views\ViewExecutable->preview('page_list', Array) #8 /var/www/teatro.it/core/modules/views_ui/src/ViewPreviewForm.php(60): Drupal\views_ui\ViewUI->renderPreview('page_list', Array) #9 /var/www/teatro.it/core/lib/Drupal/Core/Entity/EntityForm.php(115): Drupal\views_ui\ViewPreviewForm->form(Array, Object(Drupal\Core\Form\FormState)) #10 /var/www/teatro.it/core/modules/views_ui/src/ViewFormBase.php(41): Drupal\Core\Entity\EntityForm->buildForm(Array, Object(Drupal\Core\Form\FormState)) #11 [internal function]: Drupal\views_ui\ViewFormBase->buildForm(Array, Object(Drupal\Core\Form\FormState), 'page_list') #12 /var/www/teatro.it/core/lib/Drupal/Core/Form/FormBuilder.php(514): call_user_func_array(Array, Array) #13 /var/www/teatro.it/core/lib/Drupal/Core/Form/FormBuilder.php(271): Drupal\Core\Form\FormBuilder->retrieveForm('view_preview_fo...', Object(Drupal\Core\Form\FormState)) #14 /var/www/teatro.it/core/lib/Drupal/Core/Controller/FormController.php(74): Drupal\Core\Form\FormBuilder->buildForm('view_preview_fo...', Object(Drupal\Core\Form\FormState)) #15 [internal function]: Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch)) #16 /var/www/teatro.it/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array) #17 /var/www/teatro.it/core/lib/Drupal/Core/Render/Renderer.php(574): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #18 /var/www/teatro.it/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #19 /var/www/teatro.it/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) #20 [internal function]: Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #21 /var/www/teatro.it/vendor/symfony/http-kernel/HttpKernel.php(144): call_user_func_array(Object(Closure), Array) #22 /var/www/teatro.it/vendor/symfony/http-kernel/HttpKernel.php(64): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #23 /var/www/teatro.it/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #24 /var/www/teatro.it/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #25 /var/www/teatro.it/core/modules/page_cache/src/StackMiddleware/PageCache.php(99): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #26 /var/www/teatro.it/core/modules/page_cache/src/StackMiddleware/PageCache.php(78): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true) #27 /var/www/teatro.it/core/modules/ban/src/BanMiddleware.php(50): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #28 /var/www/teatro.it/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\ban\BanMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #29 /var/www/teatro.it/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(50): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #30 /var/www/teatro.it/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #31 /var/www/teatro.it/core/lib/Drupal/Core/DrupalKernel.php(652): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #32 /var/www/teatro.it/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #33 {main}.

Comments

sedax created an issue. See original summary.

bkhandruk’s picture

Assigned: Unassigned » bkhandruk
bkhandruk’s picture

Assigned: bkhandruk » Unassigned
Status: Active » Needs review
StatusFileSize
new679 bytes

Corrected a method name.

csedax90’s picture

I've applyied patch #3 and flushed all caches but now it returns:

Error: Call to undefined method Drupal\search_api\Plugin\views\query\SearchApiQuery::addWhere() in Drupal\views\Plugin\views\filter\BooleanOperator->queryOpBoolean() (line 267 of /var/www/teatro.it/core/modules/views/src/Plugin/views/filter/BooleanOperator.php) #0 [internal function]: Drupal\views\Plugin\views\filter\BooleanOperator->queryOpBoolean('.status', '=') #1 /var/www/teatro.it/core/modules/views/src/Plugin/views/filter/BooleanOperator.php(224): call_user_func(Array, '.status', '=') #2 /var/www/teatro.it/core/modules/views/src/ViewExecutable.php(1360): Drupal\views\Plugin\views\filter\BooleanOperator->query(false) #3 /var/www/teatro.it/core/modules/views/src/ViewExecutable.php(1249): Drupal\views\ViewExecutable->_build('filter') #4 /var/www/teatro.it/core/modules/views/src/ViewExecutable.php(1378): Drupal\views\ViewExecutable->build(NULL) #5 /var/www/teatro.it/core/modules/views/src/ViewExecutable.php(1441): Drupal\views\ViewExecutable->execute(NULL) #6 /var/www/teatro.it/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php(2391): Drupal\views\ViewExecutable->render() #7 /var/www/teatro.it/core/modules/views/src/ViewExecutable.php(1649): Drupal\views\Plugin\views\display\DisplayPluginBase->preview() #8 /var/www/teatro.it/core/modules/views_ui/src/ViewUI.php(602): Drupal\views\ViewExecutable->preview('page_list', Array) #9 /var/www/teatro.it/core/modules/views_ui/src/ViewPreviewForm.php(60): Drupal\views_ui\ViewUI->renderPreview('page_list', Array) #10 /var/www/teatro.it/core/lib/Drupal/Core/Entity/EntityForm.php(115): Drupal\views_ui\ViewPreviewForm->form(Array, Object(Drupal\Core\Form\FormState)) #11 /var/www/teatro.it/core/modules/views_ui/src/ViewFormBase.php(41): Drupal\Core\Entity\EntityForm->buildForm(Array, Object(Drupal\Core\Form\FormState)) #12 [internal function]: Drupal\views_ui\ViewFormBase->buildForm(Array, Object(Drupal\Core\Form\FormState), 'page_list') #13 /var/www/teatro.it/core/lib/Drupal/Core/Form/FormBuilder.php(514): call_user_func_array(Array, Array) #14 /var/www/teatro.it/core/lib/Drupal/Core/Form/FormBuilder.php(364): Drupal\Core\Form\FormBuilder->retrieveForm('view_preview_fo...', Object(Drupal\Core\Form\FormState)) #15 /var/www/teatro.it/core/lib/Drupal/Core/Form/FormBuilder.php(621): Drupal\Core\Form\FormBuilder->rebuildForm('view_preview_fo...', Object(Drupal\Core\Form\FormState), Array) #16 /var/www/teatro.it/core/lib/Drupal/Core/Form/FormBuilder.php(314): Drupal\Core\Form\FormBuilder->processForm('view_preview_fo...', Array, Object(Drupal\Core\Form\FormState)) #17 /var/www/teatro.it/core/lib/Drupal/Core/Controller/FormController.php(74): Drupal\Core\Form\FormBuilder->buildForm('view_preview_fo...', Object(Drupal\Core\Form\FormState)) #18 [internal function]: Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch)) #19 /var/www/teatro.it/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array) #20 /var/www/teatro.it/core/lib/Drupal/Core/Render/Renderer.php(574): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #21 /var/www/teatro.it/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #22 /var/www/teatro.it/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) #23 [internal function]: Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #24 /var/www/teatro.it/vendor/symfony/http-kernel/HttpKernel.php(144): call_user_func_array(Object(Closure), Array) #25 /var/www/teatro.it/vendor/symfony/http-kernel/HttpKernel.php(64): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #26 /var/www/teatro.it/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #27 /var/www/teatro.it/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #28 /var/www/teatro.it/core/modules/page_cache/src/StackMiddleware/PageCache.php(99): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #29 /var/www/teatro.it/core/modules/page_cache/src/StackMiddleware/PageCache.php(78): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true) #30 /var/www/teatro.it/core/modules/ban/src/BanMiddleware.php(50): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #31 /var/www/teatro.it/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\ban\BanMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #32 /var/www/teatro.it/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(50): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #33 /var/www/teatro.it/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #34 /var/www/teatro.it/core/lib/Drupal/Core/DrupalKernel.php(652): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #35 /var/www/teatro.it/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #36 {main}.
csedax90’s picture

Status: Needs review » Needs work
alan-ps’s picture

Status: Needs work » Needs review
StatusFileSize
new874 bytes

I think, we need something like this.

blanca.esqueda’s picture

Probably this issue is related to the search_api views schema.
I had a similar issue when using date filters.
Attached a patch (for 8.x-1.x-dev and for 8.x-1.0-beta4) in this issue: https://www.drupal.org/node/2853049

I believe this issue is related because the schema needs the min and max.
I would suggest to apply the patch in here: https://www.drupal.org/node/2369119
and then the patch in here: https://www.drupal.org/node/2853049

drunken monkey’s picture

Status: Needs review » Closed (duplicate)