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;
 }
Пример #2
0
 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;
 }