/** * {@inheritdoc} */ public function buildView(FormView $view, FormInterface $form, array $options) { $vars = array('configs' => $options['configs']); if ($form->getData()) { $fieldConfig = $this->entityManager->getExtendManager()->getConfigProvider()->getConfig($form->getParent()->getData(), $form->getName()); $fieldName = $fieldConfig->get('target_field'); $vars['attr'] = array('data-entities' => json_encode(array(array($fieldName => $form->getData()->{'get' . ucfirst($fieldName)}())))); } $view->vars = array_replace_recursive($view->vars, $vars); }
/** * {@inheritdoc} */ public function search($query, $page, $perPage) { list($query, $targetEntity, $targetField) = explode(',', $query); $this->entityName = str_replace('_', '\\', $targetEntity); $fieldConfig = $this->entityManager->getExtendManager()->getConfigProvider()->getConfig($this->entityName, $targetField); if ($fieldConfig->is('owner', ExtendManager::OWNER_CUSTOM)) { $this->isCustomField = true; } $this->fieldName = $targetField; return $this->formatResult($this->searchEntities($query, $targetField)); }
protected function checkRelation($targetClass, $fieldId) { $extendProvider = $this->em->getExtendManager()->getConfigProvider(); $targetConfig = $extendProvider->getConfig($targetClass); $relations = $targetConfig->get('relation') ?: []; $schema = $targetConfig->get('schema') ?: []; foreach ($relations as &$relation) { if ($relation['target_field_id'] == $fieldId) { $relation['assign'] = true; $relationFieldId = $relation['field_id']; if ($relationFieldId && count($schema)) { $schema['relation'][self::FIELD_PREFIX . $relationFieldId->getFieldName()] = $relationFieldId->getFieldName(); } } } $targetConfig->set('relation', $relations); $targetConfig->set('schema', $schema); $extendProvider->persist($targetConfig); }