Laminas \ Db \ Adapter \ Exception \ InvalidQueryException
Statement could not be executed (22P02 - 7 - ERROR: invalid input syntax for type bytea)
Previous exceptions
  • SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for type bytea (22P02)
Laminas\Db\Adapter\Exception\InvalidQueryException thrown with message "Statement could not be executed (22P02 - 7 - ERROR: invalid input syntax for type bytea)" Stacktrace: #18 Laminas\Db\Adapter\Exception\InvalidQueryException in /usr/local/vufind/vendor/laminas/laminas-db/src/Adapter/Driver/Pdo/Statement.php:243 #17 PDOException in /usr/local/vufind/vendor/laminas/laminas-db/src/Adapter/Driver/Pdo/Statement.php:238 #16 PDOStatement:execute in /usr/local/vufind/vendor/laminas/laminas-db/src/Adapter/Driver/Pdo/Statement.php:238 #15 Laminas\Db\Adapter\Driver\Pdo\Statement:execute in /usr/local/vufind/vendor/laminas/laminas-db/src/RowGateway/AbstractRowGateway.php:145 #14 Laminas\Db\RowGateway\AbstractRowGateway:save in /usr/local/vufind/module/VuFind/src/VuFind/Db/Row/Search.php:95 #13 VuFind\Db\Row\Search:save in /usr/local/vufind/module/VuFind/src/VuFind/Db/Table/Search.php:291 #12 VuFind\Db\Table\Search:saveSearch in /usr/local/vufind/module/VuFind/src/VuFind/Controller/AbstractSearch.php:453 #11 VuFind\Controller\AbstractSearch:saveSearchToHistory in /usr/local/vufind/module/VuFind/src/VuFind/Controller/AbstractSearch.php:350 #10 VuFind\Controller\AbstractSearch:getSearchResultsView in /usr/local/vufind/module/VuFind/src/VuFind/Controller/AbstractSearch.php:292 #9 VuFind\Controller\AbstractSearch:resultsAction in /usr/local/vufind/module/VuFind/src/VuFind/Controller/SearchController.php:453 #8 VuFind\Controller\SearchController:resultsAction in /usr/local/vufind/vendor/laminas/laminas-mvc/src/Controller/AbstractActionController.php:77 #7 Laminas\Mvc\Controller\AbstractActionController:onDispatch in /usr/local/vufind/vendor/laminas/laminas-eventmanager/src/EventManager.php:331 #6 Laminas\EventManager\EventManager:triggerListeners in /usr/local/vufind/vendor/laminas/laminas-eventmanager/src/EventManager.php:188 #5 Laminas\EventManager\EventManager:triggerEventUntil in /usr/local/vufind/vendor/laminas/laminas-mvc/src/Controller/AbstractController.php:103 #4 Laminas\Mvc\Controller\AbstractController:dispatch in /usr/local/vufind/vendor/laminas/laminas-mvc/src/DispatchListener.php:138 #3 Laminas\Mvc\DispatchListener:onDispatch in /usr/local/vufind/vendor/laminas/laminas-eventmanager/src/EventManager.php:331 #2 Laminas\EventManager\EventManager:triggerListeners in /usr/local/vufind/vendor/laminas/laminas-eventmanager/src/EventManager.php:188 #1 Laminas\EventManager\EventManager:triggerEventUntil in /usr/local/vufind/vendor/laminas/laminas-mvc/src/Application.php:331 #0 Laminas\Mvc\Application:run in /usr/local/vufind/public/index.php:71
18
Laminas\Db\Adapter\Exception\InvalidQueryException
/vendor/laminas/laminas-db/src/Adapter/Driver/Pdo/Statement.php243
17
PDOException
/vendor/laminas/laminas-db/src/Adapter/Driver/Pdo/Statement.php238
16
PDOStatement execute
/vendor/laminas/laminas-db/src/Adapter/Driver/Pdo/Statement.php238
15
Laminas\Db\Adapter\Driver\Pdo\Statement execute
/vendor/laminas/laminas-db/src/RowGateway/AbstractRowGateway.php145
14
Laminas\Db\RowGateway\AbstractRowGateway save
/module/VuFind/src/VuFind/Db/Row/Search.php95
13
VuFind\Db\Row\Search save
/module/VuFind/src/VuFind/Db/Table/Search.php291
12
VuFind\Db\Table\Search saveSearch
/module/VuFind/src/VuFind/Controller/AbstractSearch.php453
11
VuFind\Controller\AbstractSearch saveSearchToHistory
/module/VuFind/src/VuFind/Controller/AbstractSearch.php350
10
VuFind\Controller\AbstractSearch getSearchResultsView
/module/VuFind/src/VuFind/Controller/AbstractSearch.php292
9
VuFind\Controller\AbstractSearch resultsAction
/module/VuFind/src/VuFind/Controller/SearchController.php453
8
VuFind\Controller\SearchController resultsAction
/vendor/laminas/laminas-mvc/src/Controller/AbstractActionController.php77
7
Laminas\Mvc\Controller\AbstractActionController onDispatch
/vendor/laminas/laminas-eventmanager/src/EventManager.php331
6
Laminas\EventManager\EventManager triggerListeners
/vendor/laminas/laminas-eventmanager/src/EventManager.php188
5
Laminas\EventManager\EventManager triggerEventUntil
/vendor/laminas/laminas-mvc/src/Controller/AbstractController.php103
4
Laminas\Mvc\Controller\AbstractController dispatch
/vendor/laminas/laminas-mvc/src/DispatchListener.php138
3
Laminas\Mvc\DispatchListener onDispatch
/vendor/laminas/laminas-eventmanager/src/EventManager.php331
2
Laminas\EventManager\EventManager triggerListeners
/vendor/laminas/laminas-eventmanager/src/EventManager.php188
1
Laminas\EventManager\EventManager triggerEventUntil
/vendor/laminas/laminas-mvc/src/Application.php331
0
Laminas\Mvc\Application run
/public/index.php71
        if (is_array($parameters)) {
            $this->parameterContainer->setFromArray($parameters);
        }
 
        if ($this->parameterContainer->count() > 0) {
            $this->bindParametersFromContainer();
        }
        /** END Standard ParameterContainer Merging Block */
 
        if ($this->profiler) {
            $this->profiler->profilerStart($this);
        }
 
        try {
            $this->resource->execute();
        } catch (\PDOException $e) {
            if ($this->profiler) {
                $this->profiler->profilerFinish();
            }
            throw new Exception\InvalidQueryException(
                'Statement could not be executed (' . implode(' - ', $this->resource->errorInfo()) . ')',
                null,
                $e
            );
        }
 
        if ($this->profiler) {
            $this->profiler->profilerFinish();
        }
 
        $result = $this->driver->createResult($this->resource, $this);
        return $result;
    }
 
    /**
     * Bind parameters from container
     */
    protected function bindParametersFromContainer()
    {
        if ($this->parametersBound) {
            } else {
                $this->parameterContainer = new ParameterContainer();
            }
        }
 
        if (is_array($parameters)) {
            $this->parameterContainer->setFromArray($parameters);
        }
 
        if ($this->parameterContainer->count() > 0) {
            $this->bindParametersFromContainer();
        }
        /** END Standard ParameterContainer Merging Block */
 
        if ($this->profiler) {
            $this->profiler->profilerStart($this);
        }
 
        try {
            $this->resource->execute();
        } catch (\PDOException $e) {
            if ($this->profiler) {
                $this->profiler->profilerFinish();
            }
            throw new Exception\InvalidQueryException(
                'Statement could not be executed (' . implode(' - ', $this->resource->errorInfo()) . ')',
                null,
                $e
            );
        }
 
        if ($this->profiler) {
            $this->profiler->profilerFinish();
        }
 
        $result = $this->driver->createResult($this->resource, $this);
        return $result;
    }
 
    /**
Exception message: SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for type bytea
            } else {
                $this->parameterContainer = new ParameterContainer();
            }
        }
 
        if (is_array($parameters)) {
            $this->parameterContainer->setFromArray($parameters);
        }
 
        if ($this->parameterContainer->count() > 0) {
            $this->bindParametersFromContainer();
        }
        /** END Standard ParameterContainer Merging Block */
 
        if ($this->profiler) {
            $this->profiler->profilerStart($this);
        }
 
        try {
            $this->resource->execute();
        } catch (\PDOException $e) {
            if ($this->profiler) {
                $this->profiler->profilerFinish();
            }
            throw new Exception\InvalidQueryException(
                'Statement could not be executed (' . implode(' - ', $this->resource->errorInfo()) . ')',
                null,
                $e
            );
        }
 
        if ($this->profiler) {
            $this->profiler->profilerFinish();
        }
 
        $result = $this->driver->createResult($this->resource, $this);
        return $result;
    }
 
    /**
 
        if ($this->rowExistsInDatabase()) {
            // UPDATE
 
            $data = $this->data;
            $where = [];
            $isPkModified = false;
 
            // primary key is always an array even if its a single column
            foreach ($this->primaryKeyColumn as $pkColumn) {
                $where[$pkColumn] = $this->primaryKeyData[$pkColumn];
                if ($data[$pkColumn] == $this->primaryKeyData[$pkColumn]) {
                    unset($data[$pkColumn]);
                } else {
                    $isPkModified = true;
                }
            }
 
            $statement = $this->sql->prepareStatementForSqlObject($this->sql->update()->set($data)->where($where));
            $result = $statement->execute();
            $rowsAffected = $result->getAffectedRows();
            unset($statement, $result); // cleanup
 
            // If one or more primary keys are modified, we update the where clause
            if ($isPkModified) {
                foreach ($this->primaryKeyColumn as $pkColumn) {
                    if ($data[$pkColumn] != $this->primaryKeyData[$pkColumn]) {
                        $where[$pkColumn] = $data[$pkColumn];
                    }
                }
            }
        } else {
            // INSERT
            $insert = $this->sql->insert();
            $insert->values($this->data);
 
            $statement = $this->sql->prepareStatementForSqlObject($insert);
 
            $result = $statement->execute();
            if (($primaryKeyValue = $result->getGeneratedValue()) && count($this->primaryKeyColumn) == 1) {
        // We need to make sure the search object is a string before unserializing:
        $this->normalizeSearchObject();
        $result = unserialize($this->search_object);
        if (!($result instanceof \VuFind\Search\Minified)) {
            throw new \Exception('Problem decoding saved search');
        }
        return $result;
    }
 
    /**
     * Save
     *
     * @return int
     */
    public function save()
    {
        // We can't save if the search object is a resource; make sure it's a
        // string first:
        $this->normalizeSearchObject();
        return parent::save();
    }
 
    /**
     * Set last executed time for scheduled alert.
     *
     * @param string $time Time.
     *
     * @return mixed
     */
    public function setLastExecuted($time)
    {
        $this->last_notification_sent = $time;
        return $this->save();
    }
 
    /**
     * Set schedule for scheduled alert.
     *
     * @param int    $schedule Schedule.
     * @param string $url      Site base URL
                // Update the new search from the existing one
                $newSearch->updateSaveStatus($oldSearch);
                return $oldSearch;
            }
        }
 
        // If we got this far, we didn't find a saved duplicate, so we should
        // save the new search:
        $this->insert(['created' => date('Y-m-d H:i:s'), 'checksum' => $checksum]);
        $row = $this->getRowById($this->getLastInsertValue());
 
        // Chicken and egg... We didn't know the id before insert
        $newSearch->updateSaveStatus($row);
 
        // Don't set session ID until this stage, because we don't want to risk
        // ever having a row that's associated with a session but which has no
        // search object data attached to it; this could cause problems!
        $row->session_id = $sessionId;
        $row->search_object = serialize(new minSO($newSearch));
        $row->save();
        return $row;
    }
 
    /**
     * Update the select statement to find records to delete.
     *
     * @param Select $select  Select clause
     * @param int    $daysOld Age in days of an "expired" record.
     *
     * @return void
     */
    protected function expirationCallback($select, $daysOld)
    {
        $expireDate = date('Y-m-d H:i:s', time() - $daysOld * 24 * 60 * 60);
        $select->where->lessThan('created', $expireDate)->equalTo('saved', 0);
    }
}
 
        return $searchTable->getOwnedRowById($searchId, $sessId, $userId);
    }
 
    /**
     * Save a search to the history in the database.
     *
     * @param \VuFind\Search\Base\Results $results Search results
     *
     * @return void
     */
    protected function saveSearchToHistory($results)
    {
        $user = $this->getUser();
        $sessId = $this->serviceLocator->get(SessionManager::class)->getId();
        $history = $this->getTable('Search');
        $history->saveSearch(
            $this->getResultsManager(),
            $results,
            $sessId,
            $user->id ?? null
        );
    }
 
    /**
     * Either assign the requested search object to the view or display a flash
     * message indicating why the operation failed.
     *
     * @param string $searchId ID value of a saved advanced search.
     *
     * @return bool|object     Restored search object if found, false otherwise.
     */
    protected function restoreAdvancedSearch($searchId)
    {
        // Look up search in database and fail if it is not found:
        $search = $this->retrieveSearchSecurely($searchId);
        if (empty($search)) {
            $this->flashMessenger()->addMessage('advSearchError_notFound', 'error');
            return false;
        }
 
        $view->params = $results->getParams();
 
        // If we received an EmptySet back, that indicates that the real search
        // failed due to some kind of syntax error, and we should display a
        // warning to the user; otherwise, we should proceed with normal post-search
        // processing.
        if ($results instanceof \VuFind\Search\EmptySet\Results) {
            $view->parseError = true;
        } else {
            // If a "jumpto" parameter is set, deal with that now:
            if ($jump = $this->processJumpTo($results)) {
                return $jump;
            }
 
            // Remember the current URL as the last search.
            $this->rememberSearch($results);
 
            // Add to search history:
            if ($this->saveToHistory) {
                $this->saveSearchToHistory($results);
            }
 
            // Set up results scroller:
            if ($this->resultScrollerActive()) {
                $this->resultScroller()->init($results);
            }
 
            foreach ($results->getErrors() as $error) {
                $this->flashMessenger()->addErrorMessage($error);
            }
        }
 
        // Special case: If we're in RSS view, we need to render differently:
        if (isset($view->params) && $view->params->getView() == 'rss') {
            $response = $this->getResponse();
            $response->getHeaders()->addHeaderLine('Content-type', 'text/xml');
            $feed = $this->getViewRenderer()->plugin('resultfeed');
            $response->setContent($feed($view->results)->export('rss'));
            return $response;
        }
            throw new \Exception('Unrecoverable deep paging error.');
        }
        $request['page'] = $page;
        $this->flashMessenger()->addErrorMessage(
            [
                'msg' => 'deep_paging_failure',
                'tokens' => ['%%page%%' => $page],
            ]
        );
        return $this->redirect()->toUrl('?' . http_build_query($request));
    }
 
    /**
     * Send search results to results view
     *
     * @return \Laminas\View\Model\ViewModel
     */
    public function resultsAction()
    {
        return $this->getSearchResultsView();
    }
 
    /**
     * Perform a search and send results to a results view
     *
     * @param callable $setupCallback Optional setup callback that overrides the
     * default one
     *
     * @return \Laminas\View\Model\ViewModel
     */
    protected function getSearchResultsView($setupCallback = null)
    {
        $view = $this->createViewModel();
 
        // Handle saved search requests:
        $savedId = $this->params()->fromQuery('saved', false);
        if ($savedId !== false) {
            return $this->redirectToSavedSearch($savedId);
        }
 
     */
    public function resultsAction()
    {
        // Special case -- redirect tag searches.
        $tag = $this->params()->fromQuery('tag');
        if (!empty($tag)) {
            $query = $this->getRequest()->getQuery();
            $query->set('lookfor', $tag);
            $query->set('type', 'tag');
        }
        if ($this->params()->fromQuery('type') == 'tag') {
            // Because we're coming in from a search, we want to do a fuzzy
            // tag search, not an exact search like we would when linking to a
            // specific tag name.
            $query = $this->getRequest()->getQuery()->set('fuzzy', 'true');
            return $this->forwardTo('Tag', 'Home');
        }
 
        // Default case -- standard behavior.
        return parent::resultsAction();
    }
 
    /**
     * Handle OpenSearch.
     *
     * @return \Laminas\Http\Response
     */
    public function opensearchAction()
    {
        switch ($this->params()->fromQuery('method')) {
        case 'describe':
            $config = $this->getConfig();
            $xml = $this->getViewRenderer()->render(
                'search/opensearch-describe.phtml',
                ['site' => $config->Site]
            );
            break;
        default:
            $xml = $this->getViewRenderer()->render('search/opensearch-error.phtml');
            break;
     */
    public function onDispatch(MvcEvent $e)
    {
        $routeMatch = $e->getRouteMatch();
        if (! $routeMatch) {
            /**
             * @todo Determine requirements for when route match is missing.
             *       Potentially allow pulling directly from request metadata?
             */
            throw new Exception\DomainException('Missing route matches; unsure how to retrieve action');
        }
 
        $action = $routeMatch->getParam('action', 'not-found');
        $method = static::getMethodFromAction($action);
 
        if (! method_exists($this, $method)) {
            $method = 'notFoundAction';
        }
 
        $actionResponse = $this->$method();
 
        $e->setResult($actionResponse);
 
        return $actionResponse;
    }
}
 
        }
 
        if ($this->sharedManager) {
            foreach ($this->sharedManager->getListeners($this->identifiers, $name) as $priority => $listeners) {
                $listOfListenersByPriority[$priority][] = $listeners;
            }
        }
 
        // Sort by priority in reverse order
        krsort($listOfListenersByPriority);
 
        // Initial value of stop propagation flag should be false
        $event->stopPropagation(false);
 
        // Execute listeners
        $responses = new ResponseCollection();
        foreach ($listOfListenersByPriority as $listOfListeners) {
            foreach ($listOfListeners as $listeners) {
                foreach ($listeners as $listener) {
                    $response = $listener($event);
                    $responses->push($response);
 
                    // If the event was asked to stop propagating, do so
                    if ($event->propagationIsStopped()) {
                        $responses->setStopped(true);
                        return $responses;
                    }
 
                    // If the result causes our validation callback to return true,
                    // stop propagation
                    if ($callback && $callback($response)) {
                        $responses->setStopped(true);
                        return $responses;
                    }
                }
            }
        }
 
        return $responses;
    }
            $event->setParams($argv);
        }
 
        return $this->triggerListeners($event, $callback);
    }
 
    /**
     * @inheritDoc
     */
    public function triggerEvent(EventInterface $event)
    {
        return $this->triggerListeners($event);
    }
 
    /**
     * @inheritDoc
     */
    public function triggerEventUntil(callable $callback, EventInterface $event)
    {
        return $this->triggerListeners($event, $callback);
    }
 
    /**
     * @inheritDoc
     */
    public function attach($eventName, callable $listener, $priority = 1)
    {
        if (! is_string($eventName)) {
            throw new Exception\InvalidArgumentException(sprintf(
                '%s expects a string for the event; received %s',
                __METHOD__,
                (is_object($eventName) ? get_class($eventName) : gettype($eventName))
            ));
        }
 
        $this->events[$eventName][(int) $priority][0][] = $listener;
        return $listener;
    }
 
    /**
     * @events dispatch.pre, dispatch.post
     * @param  Request $request
     * @param  null|Response $response
     * @return Response|mixed
     */
    public function dispatch(Request $request, Response $response = null)
    {
        $this->request = $request;
        if (! $response) {
            $response = new HttpResponse();
        }
        $this->response = $response;
 
        $e = $this->getEvent();
        $e->setName(MvcEvent::EVENT_DISPATCH);
        $e->setRequest($request);
        $e->setResponse($response);
        $e->setTarget($this);
 
        $result = $this->getEventManager()->triggerEventUntil(function ($test) {
            return ($test instanceof Response);
        }, $e);
 
        if ($result->stopped()) {
            return $result->last();
        }
 
        return $e->getResult();
    }
 
    /**
     * Get request object
     *
     * @return Request
     */
    public function getRequest()
    {
        if (! $this->request) {
            $this->request = new HttpRequest();
        }
            );
            return $this->complete($return, $e);
        } catch (\Throwable $exception) {
            $return = $this->marshalBadControllerEvent($controllerName, $e, $application, $exception);
            return $this->complete($return, $e);
        } catch (\Exception $exception) {  // @TODO clean up once PHP 7 requirement is enforced
            $return = $this->marshalBadControllerEvent($controllerName, $e, $application, $exception);
            return $this->complete($return, $e);
        }
 
        if ($controller instanceof InjectApplicationEventInterface) {
            $controller->setEvent($e);
        }
 
        $request  = $e->getRequest();
        $response = $application->getResponse();
        $caughtException = null;
 
        try {
            $return = $controller->dispatch($request, $response);
        } catch (\Throwable $ex) {
            $caughtException = $ex;
        } catch (\Exception $ex) {  // @TODO clean up once PHP 7 requirement is enforced
            $caughtException = $ex;
        }
 
        if ($caughtException !== null) {
            $e->setName(MvcEvent::EVENT_DISPATCH_ERROR);
            $e->setError($application::ERROR_EXCEPTION);
            $e->setController($controllerName);
            $e->setControllerClass(get_class($controller));
            $e->setParam('exception', $caughtException);
 
            $return = $application->getEventManager()->triggerEvent($e)->last();
            if (! $return) {
                $return = $e->getResult();
            }
        }
 
        return $this->complete($return, $e);
        }
 
        if ($this->sharedManager) {
            foreach ($this->sharedManager->getListeners($this->identifiers, $name) as $priority => $listeners) {
                $listOfListenersByPriority[$priority][] = $listeners;
            }
        }
 
        // Sort by priority in reverse order
        krsort($listOfListenersByPriority);
 
        // Initial value of stop propagation flag should be false
        $event->stopPropagation(false);
 
        // Execute listeners
        $responses = new ResponseCollection();
        foreach ($listOfListenersByPriority as $listOfListeners) {
            foreach ($listOfListeners as $listeners) {
                foreach ($listeners as $listener) {
                    $response = $listener($event);
                    $responses->push($response);
 
                    // If the event was asked to stop propagating, do so
                    if ($event->propagationIsStopped()) {
                        $responses->setStopped(true);
                        return $responses;
                    }
 
                    // If the result causes our validation callback to return true,
                    // stop propagation
                    if ($callback && $callback($response)) {
                        $responses->setStopped(true);
                        return $responses;
                    }
                }
            }
        }
 
        return $responses;
    }
            $event->setParams($argv);
        }
 
        return $this->triggerListeners($event, $callback);
    }
 
    /**
     * @inheritDoc
     */
    public function triggerEvent(EventInterface $event)
    {
        return $this->triggerListeners($event);
    }
 
    /**
     * @inheritDoc
     */
    public function triggerEventUntil(callable $callback, EventInterface $event)
    {
        return $this->triggerListeners($event, $callback);
    }
 
    /**
     * @inheritDoc
     */
    public function attach($eventName, callable $listener, $priority = 1)
    {
        if (! is_string($eventName)) {
            throw new Exception\InvalidArgumentException(sprintf(
                '%s expects a string for the event; received %s',
                __METHOD__,
                (is_object($eventName) ? get_class($eventName) : gettype($eventName))
            ));
        }
 
        $this->events[$eventName][(int) $priority][0][] = $listener;
        return $listener;
    }
 
    /**
            $response = $result->last();
            if ($response instanceof ResponseInterface) {
                $event->setName(MvcEvent::EVENT_FINISH);
                $event->setTarget($this);
                $event->setResponse($response);
                $event->stopPropagation(false); // Clear before triggering
                $events->triggerEvent($event);
                $this->response = $response;
                return $this;
            }
        }
 
        if ($event->getError()) {
            return $this->completeRequest($event);
        }
 
        // Trigger dispatch event
        $event->setName(MvcEvent::EVENT_DISPATCH);
        $event->stopPropagation(false); // Clear before triggering
        $result = $events->triggerEventUntil($shortCircuit, $event);
 
        // Complete response
        $response = $result->last();
        if ($response instanceof ResponseInterface) {
            $event->setName(MvcEvent::EVENT_FINISH);
            $event->setTarget($this);
            $event->setResponse($response);
            $event->stopPropagation(false); // Clear before triggering
            $events->triggerEvent($event);
            $this->response = $response;
            return $this;
        }
 
        $response = $this->response;
        $event->setResponse($response);
        return $this->completeRequest($event);
    }
 
    /**
     * Complete the request
$pathParts[] = APPLICATION_PATH . '/vendor';
$pathParts[] = get_include_path();
set_include_path(implode(PATH_SEPARATOR, $pathParts));
 
// Composer autoloading
if (file_exists('vendor/autoload.php')) {
    $loader = include 'vendor/autoload.php';
}
 
if (!class_exists('Laminas\Loader\AutoloaderFactory')) {
    throw new RuntimeException('Unable to load Laminas autoloader.');
}
 
// Run the application!
$app = Laminas\Mvc\Application::init(require 'config/application.config.php');
if (PHP_SAPI === 'cli') {
    return $app->getServiceManager()
        ->get(\VuFindConsole\ConsoleRunner::class)->run();
} else {
    $app->run();
}
 

Environment & details:

Key Value
hiddenFilters Array ( [0] => -catalogo_str:"si" )
lookfor Instituto de Investigaciones Sociales.
type Publisher
filter Array ( [0] => format:"info:eu-repo/semantics/publishedVersion\n" )
empty
empty
empty
Key Value
__Laminas Array ( [_REQUEST_ACCESS_TIME] => 1711638920.805 [_VALID] => Array ( [Laminas\Session\Validator\Id] => is2so474999pqihotsbcc2g2vt ) )
SessionState Laminas\Stdlib\ArrayObject Object ( [storage:protected] => Array ( [cookiePath] => / ) [flag:protected] => 2 [iteratorClass:protected] => ArrayIterator [protectedProperties:protected] => Array ( [0] => storage [1] => flag [2] => iteratorClass [3] => protectedProperties ) )
Search Laminas\Stdlib\ArrayObject Object ( [storage:protected] => Array ( [last] => /bdu/Search/Results?filter%5B%5D=format%3A%22info%3Aeu-repo%2Fsemantics%2FpublishedVersion%5Cn%22&hiddenFilters%5B%5D=-catalogo_str%3A%22si%22&lookfor=Instituto+de+Investigaciones+Sociales.&type=Publisher [params|Solr|hiddenFilters] => Array ( [-catalogo_str] => Array ( [0] => si ) ) [params|Solr|limit] => 20 [params|Solr|sort] => [params|Solr|view] => list ) [flag:protected] => 2 [iteratorClass:protected] => ArrayIterator [protectedProperties:protected] => Array ( [0] => storage [1] => flag [2] => iteratorClass [3] => protectedProperties ) )
Key Value
REDIRECT_VUFIND_ENV development
REDIRECT_VUFIND_LOCAL_DIR /usr/local/vufind/local
REDIRECT_VUFIND_LOCAL_MODULES Bdu
REDIRECT_STATUS 200
VUFIND_ENV development
VUFIND_LOCAL_DIR /usr/local/vufind/local
VUFIND_LOCAL_MODULES Bdu
HTTP_HOST bdu.siu.edu.ar
HTTP_USER_AGENT claudebot
HTTP_ACCEPT */*
HTTP_X_FORWARDED_FOR 3.92.96.247
HTTP_X_FORWARDED_HOST bdu.siu.edu.ar
HTTP_X_FORWARDED_PROTO https
HTTP_ACCEPT_ENCODING gzip
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SERVER_SIGNATURE <address>Apache/2.4.56 (Debian) Server at bdu.siu.edu.ar Port 80</address>
SERVER_SOFTWARE Apache/2.4.56 (Debian)
SERVER_NAME bdu.siu.edu.ar
SERVER_ADDR 172.27.100.135
SERVER_PORT 80
REMOTE_ADDR 172.27.100.140
DOCUMENT_ROOT /home/hgiorgi/bdu/public
REQUEST_SCHEME http
CONTEXT_PREFIX /bdu
CONTEXT_DOCUMENT_ROOT /usr/local/vufind/public
SERVER_ADMIN webmaster@localhost
SCRIPT_FILENAME /usr/local/vufind/public/index.php
REMOTE_PORT 48820
REDIRECT_URL /bdu/Search/Results
REDIRECT_QUERY_STRING hiddenFilters%5B%5D=-catalogo_str%3A%22si%22&lookfor=Instituto+de+Investigaciones+Sociales.&type=Publisher&filter%5B%5D=format%3A%22info%3Aeu-repo%2Fsemantics%2FpublishedVersion%5Cn%22
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET
QUERY_STRING hiddenFilters%5B%5D=-catalogo_str%3A%22si%22&lookfor=Instituto+de+Investigaciones+Sociales.&type=Publisher&filter%5B%5D=format%3A%22info%3Aeu-repo%2Fsemantics%2FpublishedVersion%5Cn%22
REQUEST_URI /bdu/Search/Results?hiddenFilters%5B%5D=-catalogo_str%3A%22si%22&lookfor=Instituto+de+Investigaciones+Sociales.&type=Publisher&filter%5B%5D=format%3A%22info%3Aeu-repo%2Fsemantics%2FpublishedVersion%5Cn%22
SCRIPT_NAME /bdu/index.php
PHP_SELF /bdu/index.php
REQUEST_TIME_FLOAT 1711638920.7896
REQUEST_TIME 1711638920
empty
0. Whoops\Handler\PrettyPageHandler