/**
  * @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;
 }
Example #2
0
 /**
  * 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;
 }