Example #1
0
 protected function addProperty(Nextras\Orm\Entity\Reflection\PropertyMetadata $metadata)
 {
     $component = parent::addProperty($metadata);
     switch ($metadata->name) {
         case 'key':
             $component->setOption('unique', TRUE);
     }
     return $component;
 }
Example #2
0
 public function setValues($values, $erase = FALSE) : Ytnuk\Orm\Form\Container
 {
     $container = parent::setValues($values, $erase);
     $link = $this->entity->menu->link;
     $link->module = 'Shop:Category';
     if (!$link->parameters->get()->getBy(['key' => $key = current($this->repository->getEntityMetadata()->getPrimaryKey())])) {
         $linkParameter = new Ytnuk\Link\Parameter\Entity();
         $linkParameter->key = $key;
         $linkParameter->value = $this->entity->getPersistedId() ?: $this->repository->persist($this->entity)->getPersistedId();
         $link->parameters->add($linkParameter);
     }
     return $container;
 }
Example #3
0
 protected function addProperty(Nextras\Orm\Entity\Reflection\PropertyMetadata $metadata)
 {
     $component = parent::addProperty($metadata);
     if ($component instanceof Nette\Forms\Controls\BaseControl) {
         switch ($metadata->name) {
             case 'post':
             case 'category':
                 $component->setOption('unique', TRUE);
                 break;
             case 'primary':
                 $component->setOption('unique', 'post');
                 break;
         }
     }
     return $component;
 }
Example #4
0
 public function setValues($values, $erase = FALSE) : parent
 {
     $translates = iterator_to_array($this['translates']->getComponents());
     array_walk($translates, function (Ytnuk\Translation\Translate\Form\Container $container, string $locale) use(&$values) {
         if (!$container->values->value) {
             $this['translates']->removeComponent($container);
             $container->removeEntity();
             unset($values['translates'][$locale]);
         }
     });
     $container = parent::setValues($values, $erase);
     $parent = $this->lookup(parent::class, FALSE);
     if ($parent instanceof parent && !(array) $values['translates']) {
         $this->removeEntity();
         if ($parent->getMetadata()->getProperty($this->getName())->isNullable) {
             $parent->removeEntity();
         }
     }
     return $container;
 }