Пример #1
0
 /**
  * @param UserDataField $field
  * @param User $user
  * @param mixed $value
  * @return UserData
  * @throws \InvalidArgumentException
  */
 public static function create(UserDataField $field, User $user, $value)
 {
     // check if field is already set for user
     if ($user->getData($field->getName()) !== null) {
         throw new \InvalidArgumentException('User\'s data field ' . $field->getName() . ' already set.');
     }
     $value = serialize($value);
     Aelix::db()->prepare('INSERT INTO `user_data`
         SET `userID` = :userID, `fieldID` = :fieldID, `value` = :value')->execute([':userID' => $user->getID(), ':fieldID' => $field->getID(), ':value' => $value]);
     $dataID = Aelix::db()->getPDO()->lastInsertId('user_data');
     return new UserData($user, $field, $dataID, $value);
 }
Пример #2
0
 /**
  * @param string $fieldName
  * @param mixed $value
  */
 public function setData($fieldName, $value)
 {
     if (isset($this->data[$fieldName])) {
         $this->data[$fieldName]->setValue($value);
         return;
     }
     // check if we need a new field
     $field = UserDataField::createField($fieldName);
     $this->data[$field->getName()] = UserData::create($field, $this, $value);
 }