/** * * @param object $query * @return string Rendered string * @api */ public function run($query) { $schema = $this->templateVariableContainer->get('schema'); $properties = $schema->getFilterProperties(); $className = $this->templateVariableContainer->get('className'); $classSchema = $this->reflectionService->getClassSchema($className); if (empty($properties)) { return; } $filter = array(); if ($this->request->hasArgument("filter")) { $filter = $this->request->getArgument("filter"); $constraints = array(); foreach ($filter as $property => $value) { $constraints[] = $query->equals($property, $value); } $query->matching($query->logicalAnd($query->getConstraint(), $query->logicalAnd($constraints))); } $this->viewHelperVariableContainer->add('Flowpack\\Expose\\QueryBehaviors\\FilterBehavior', 'filter', $filter); $content = $this->viewHelperVariableContainer->getView()->renderPartial('Filter', NULL, array('filter' => $filter, 'properties' => $properties)); $this->viewHelperVariableContainer->remove('Flowpack\\Expose\\QueryBehaviors\\FilterBehavior', 'filter'); $this->addToBlock('sidebar', $content); }
/** * Validate lifecycle callbacks * * @param ReflectionService $reflService * @return void */ public function validateLifecycleCallbacks($reflService) { foreach ($this->lifecycleCallbacks as $event => $callbacks) { foreach ($callbacks as $callbackFuncName) { if (!$reflService->hasPublicMethod($this->name, $callbackFuncName)) { throw MappingException::lifecycleCallbackMethodNotFound($this->name, $callbackFuncName); } } } }