protected function enrichElegantModel(ElegantModelInterface $elegantModel)
 {
     $rememberTokenField = $elegantModel->getModelInstance()->getRememberTokenName();
     if ($elegantModel->hasField($rememberTokenField)) {
         $elegantModel->addField(new HiddenMetaField([], $elegantModel->getField($rememberTokenField)));
     }
 }
Пример #2
0
 /**
  * @param ElegantModelInterface $elegantModel
  * @param $field
  */
 protected function replaceMetaFields(ElegantModelInterface $elegantModel, $field)
 {
     foreach ($this->attachmentSuffixes as $suffix) {
         $metaFieldName = $field . $suffix;
         $elegantModel->addField(new HiddenMetaField([], $elegantModel->getField($metaFieldName)));
     }
 }
 protected function enrichElegantModel(ElegantModelInterface $elegantModel)
 {
     $class = new ReflectionClass($elegantModel->getClassName());
     $property = $class->getProperty('translatedAttributes');
     $translatedAttributes = $property->getValue($class->newInstance()) ?: [];
     if (!($translatedModel = $this->getTranslatedModel($class))) {
         return;
     }
     // Hide translatedModel
     $translatedModel->setHidden(true);
     // Decorate translated attribute field
     foreach ($translatedAttributes as $attribute) {
         if ($translatedModel->hasField($attribute)) {
             $elegantModel->addField(new TranslatableField([], $translatedModel->getField($attribute)), true);
         }
     }
 }
 public function elegantLists()
 {
     $keyName = $this->elegantModel->getKeyName();
     $fields = array_merge(array_keys($this->elegantModel->getDatabaseFields()), [$keyName]);
     $result = [];
     $list = $this->model->get($fields)->keyBy($keyName);
     foreach ($list as $k => $v) {
         $result[$k] = $this->elegantModel->getModelAsString($v);
     }
     return $result;
 }
 public function isAvailableInModel(ElegantModelInterface $elegantModel)
 {
     $class = new ReflectionClass($elegantModel->getClassName());
     $extensionAvailable = false;
     // Check current class has reflected trait
     if ($this->hasReflectedTrait($class)) {
         $extensionAvailable = true;
     } else {
         // Check parent classes, since ReflectionClass::getTraits doesn't
         // check inherited traits (https://bugs.php.net/bug.php?id=61554)
         while ($parent = $class->getParentClass()) {
             if ($this->hasReflectedTrait($parent)) {
                 $extensionAvailable = true;
                 break;
             }
             $class = $parent;
         }
     }
     if ($extensionAvailable) {
         $this->enrichElegantModel($elegantModel);
     }
     return $extensionAvailable;
 }