TypeError: Cannot access offset of type string on string in Drupal\eca_views\Plugin\Action\ViewsSetFilter->execute() (line 68 of /var/lib/tugboat/stm/web/modules/contrib/eca/modules/views/src/Plugin/Action/ViewsSetFilter.php).

Created on 25 February 2025, 5 days ago

Hello!

Just tried to change the value of a filter ( Taxonomy term: Name) and and error is logged. Please note that the filter value can be changed without problems if using the filter Taxonomy term: Term ID (tid_raw).

This can be reproduced on simpletest.me. Attached is the problematic model.

TypeError: Cannot access offset of type string on string in Drupal\eca_views\Plugin\Action\ViewsSetFilter->execute() (line 68 of /var/lib/tugboat/stm/web/modules/contrib/eca/modules/views/src/Plugin/Action/ViewsSetFilter.php).

#0 /var/lib/tugboat/stm/web/modules/contrib/eca/src/Entity/Objects/EcaAction.php(107): Drupal\eca_views\Plugin\Action\ViewsSetFilter->execute(NULL)
#1 /var/lib/tugboat/stm/web/modules/contrib/eca/src/Processor.php(298): Drupal\eca\Entity\Objects\EcaAction->execute(Object(Drupal\eca\Entity\Objects\EcaEvent), Object(Drupal\eca_views\Event\PreBuild), Array)
#2 /var/lib/tugboat/stm/web/modules/contrib/eca/src/Processor.php(222): Drupal\eca\Processor->executeSuccessors(Object(Drupal\eca\Entity\Eca), Object(Drupal\eca\Entity\Objects\EcaEvent), Object(Drupal\eca_views\Event\PreBuild), Array)
#3 /var/lib/tugboat/stm/web/modules/contrib/eca/src/EventSubscriber/DynamicSubscriber.php(39): Drupal\eca\Processor->execute(Object(Drupal\eca_views\Event\PreBuild), 'eca_views.pre_b...')
#4 /var/lib/tugboat/stm/vendor/symfony/event-dispatcher/EventDispatcher.php(206): Drupal\eca\EventSubscriber\DynamicSubscriber->onEvent(Object(Drupal\eca_views\Event\PreBuild), 'eca_views.pre_b...', Object(Symfony\Component\EventDispatcher\EventDispatcher))
#5 /var/lib/tugboat/stm/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, 'eca_views.pre_b...', Object(Drupal\eca_views\Event\PreBuild))
#6 /var/lib/tugboat/stm/web/modules/contrib/eca/src/Event/TriggerEvent.php(66): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(Drupal\eca_views\Event\PreBuild), 'eca_views.pre_b...')
#7 /var/lib/tugboat/stm/web/modules/contrib/eca/modules/views/src/HookHandler.php(54): Drupal\eca\Event\TriggerEvent->dispatchFromPlugin('eca_views:pre_b...', Object(Drupal\views\ViewExecutable))
#8 /var/lib/tugboat/stm/web/modules/contrib/eca/modules/views/eca_views.module(41): Drupal\eca_views\HookHandler->preBuild(Object(Drupal\views\ViewExecutable))
#9 [internal function]: eca_views_views_pre_build(Object(Drupal\views\ViewExecutable))
#10 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/Extension/ModuleHandler.php(355): call_user_func_array('\\eca_views_view...', Array)
#11 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/Extension/ModuleHandler.php(307): Drupal\Core\Extension\ModuleHandler->{closure:Drupal\Core\Extension\ModuleHandler::invokeAll():354}('\\eca_views_view...', 'eca_views')
#12 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/Extension/ModuleHandler.php(354): Drupal\Core\Extension\ModuleHandler->invokeAllWith('views_pre_build', Object(Closure))
#13 /var/lib/tugboat/stm/web/core/modules/views/src/ViewExecutable.php(1269): Drupal\Core\Extension\ModuleHandler->invokeAll('views_pre_build', Array)
#14 /var/lib/tugboat/stm/web/core/modules/views/src/ViewExecutable.php(1451): Drupal\views\ViewExecutable->build(NULL)
#15 /var/lib/tugboat/stm/web/core/modules/views/src/ViewExecutable.php(1514): Drupal\views\ViewExecutable->execute(NULL)
#16 /var/lib/tugboat/stm/web/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php(2493): Drupal\views\ViewExecutable->render()
#17 /var/lib/tugboat/stm/web/core/modules/views/src/ViewExecutable.php(1722): Drupal\views\Plugin\views\display\DisplayPluginBase->preview()
#18 /var/lib/tugboat/stm/web/core/modules/views_ui/src/ViewUI.php(615): Drupal\views\ViewExecutable->preview('default', Array)
#19 /var/lib/tugboat/stm/web/core/modules/views_ui/src/ViewPreviewForm.php(63): Drupal\views_ui\ViewUI->renderPreview('default', Array)
#20 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/Entity/EntityForm.php(107): Drupal\views_ui\ViewPreviewForm->form(Array, Object(Drupal\Core\Form\FormState))
#21 /var/lib/tugboat/stm/web/core/modules/views_ui/src/ViewFormBase.php(42): Drupal\Core\Entity\EntityForm->buildForm(Array, Object(Drupal\Core\Form\FormState))
#22 [internal function]: Drupal\views_ui\ViewFormBase->buildForm(Array, Object(Drupal\Core\Form\FormState), 'default')
#23 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/Form/FormBuilder.php(528): call_user_func_array(Array, Array)
#24 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/Form/FormBuilder.php(370): Drupal\Core\Form\FormBuilder->retrieveForm('view_preview_fo...', Object(Drupal\Core\Form\FormState))
#25 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/Form/FormBuilder.php(625): Drupal\Core\Form\FormBuilder->rebuildForm('view_preview_fo...', Object(Drupal\Core\Form\FormState), Array)
#26 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/Form/FormBuilder.php(321): Drupal\Core\Form\FormBuilder->processForm('view_preview_fo...', Array, Object(Drupal\Core\Form\FormState))
#27 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/Controller/FormController.php(73): Drupal\Core\Form\FormBuilder->buildForm(Object(Drupal\views_ui\ViewPreviewForm), Object(Drupal\Core\Form\FormState))
#28 [internal function]: Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch))
#29 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array)
#30 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/Render/Renderer.php(593): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->{closure:Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber::wrapControllerExecutionInRenderContext():121}()
#31 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(121): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#32 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array)
#33 /var/lib/tugboat/stm/vendor/symfony/http-kernel/HttpKernel.php(183): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->{closure:Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber::onController():96}()
#34 /var/lib/tugboat/stm/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#35 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/StackMiddleware/Session.php(53): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#36 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#37 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/StackMiddleware/ContentLength.php(28): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#38 /var/lib/tugboat/stm/web/core/modules/big_pipe/src/StackMiddleware/ContentLength.php(32): Drupal\Core\StackMiddleware\ContentLength->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#39 /var/lib/tugboat/stm/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(116): Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#40 /var/lib/tugboat/stm/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(90): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#41 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#42 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#43 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php(36): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#44 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\AjaxPageState->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#45 /var/lib/tugboat/stm/web/core/lib/Drupal/Core/DrupalKernel.php(709): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#46 /var/lib/tugboat/stm/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#47 {main}

Thank you!

🐛 Bug report
Status

Active

Version

2.1

Component

Code

Created by

🇷🇴Romania gge

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @gge
  • 🇷🇴Romania gge

    The problematic line is:
    $event->getView()->filter[$id]->value['value'] = $value;

    Not sure if this is the right way to fix it, but the error doesn't show up anymore if we check if $event->getView()->filter[$id]->value is an array before trying to use it as an array:
    Replace line 68 with

          if (is_array($event->getView()->filter[$id]->value)) {
            $event->getView()->filter[$id]->value['value'] = $value;
          }
          else {
            $event->getView()->filter[$id]->value = $value;
          }  
Production build 0.71.5 2024