Jarves\Controller\Admin\BackendController::searchAction PHP Метод

searchAction() публичный Метод

public searchAction ( FOS\RestBundle\Request\ParamFetcher $paramFetcher ) : boolean
$paramFetcher FOS\RestBundle\Request\ParamFetcher
Результат boolean
    public function searchAction(ParamFetcher $paramFetcher)
    {
        $query = $paramFetcher->get('query');
        $result = ['errors' => [], 'items' => []];
        /** @var StorageFactory $storageFactory */
        $storageFactory = $this->get('jarves.storage_factory');
        $condition = new Condition();
        $configs = $this->jarves->getConfigs()->getConfigs();
        $objects = [];
        foreach ($configs as $bundleConfig) {
            if (!$bundleConfig->getObjects()) {
                continue;
            }
            foreach ($bundleConfig->getObjects() as $object) {
                if ('jarves/file' !== $object->getKey()) {
                    $objects[] = $object;
                }
            }
        }
        $objects[] = $this->jarves->getConfigs()->getObject('jarves/file');
        foreach ($objects as $object) {
            /** @var AbstractStorage $storage */
            $storage = $storageFactory->createStorage($object);
            try {
                if ($searchResult = $storage->search($query, clone $condition)) {
                    $result['items'][$object->getKey()] = $searchResult;
                }
            } catch (\Exception $e) {
                $result['errors'][$object->getKey()] = get_class($e) . ': ' . $e->getMessage();
            }
        }
        return $result;
    }