protected function getIndexEntryColumn(Key $key, $subKey = false) { if ($subKey) { $column = sprintf('ak_%s_%s', $key->getAttributeKeyHandle(), $subKey); } else { $column = sprintf('ak_%s', $key->getAttributeKeyHandle()); } return $column; }
public function updateFromRequest(Key $key, Request $request) { $previousHandle = $key->getAttributeKeyHandle(); $loader = new StandardRequestLoader(); $loader->load($key, $request); $controller = $key->getController(); $settings = $controller->saveKey($request->request->all()); if (!is_object($settings)) { $settings = $controller->getAttributeKeySettings(); } $settings->setAttributeKey($key); $this->entityManager->persist($settings); $this->entityManager->flush(); $key->setAttributeKeySettings($settings); // Modify the category's search indexer. $indexer = $this->getSearchIndexer(); if (is_object($indexer)) { $indexer->updateRepositoryColumns($this, $key, $previousHandle); } $this->entityManager->persist($key); $this->entityManager->flush(); $this->clearAttributeSet($key); if ($request->request->has('asID') && $request->request->get('asID')) { $key->setAttributeSet(Set::getByID($request->request->get('asID'))); } $this->entityManager->flush(); return $key; }