/** * @param SearchFieldMapping $searchFieldMapping * @param string $alias * * @return $this */ public function setSearchFieldMapping(SearchFieldMapping $searchFieldMapping, $alias = 'a') { $this->setAlias($alias); $this->setAttribute($searchFieldMapping->getFieldName()); $this->setValue($searchFieldMapping->getRequestValue()); return $this; }
/** * Get field mappings * * @param $entity_instance * @param bool $get_assoc_fields * * @return ArrayCollection */ public function getFieldMappings($entity_instance, $get_assoc_fields = false, $save = true) { $meta = $this->getMetaData(get_class($entity_instance)); $fieldMappings = new ArrayCollection(); // field mappings foreach ($meta->fieldMappings as $fieldMapping) { $fieldMappings->add(SearchFieldMapping::create($fieldMapping)); } // association field mappings if ($get_assoc_fields) { foreach ($meta->associationMappings as $associationMapping) { $mapping = SearchAssociationFieldMapping::create($associationMapping); // get meta for association if ($get_assoc_fields) { $assocClassName = $mapping->getTargetEntity(); $assocInstance = new $assocClassName(); $assocFieldMappings = $this->getFieldMappings($assocInstance, false, false); // add field mappings to assoc $mapping->setFieldMappings($assocFieldMappings); } $fieldMappings->add($mapping); } } if ($save) { $this->request_data_mapped = true; $this->meta = $meta; $this->fieldMappings = $fieldMappings; $this->entity_instance = $entity_instance; } return $fieldMappings; }