getValue() 보호된 메소드

This method is called by AttributeBehavior::evaluateAttributes. Its return value will be assigned to the attributes corresponding to the triggering event.
protected getValue ( Event $event ) : mixed
$event yii\base\Event the event that triggers the current attribute updating.
리턴 mixed the attribute value
예제 #1
0
 /**
  * @inheritdoc
  */
 protected function getValue($event)
 {
     if ($this->attribute !== null) {
         if ($this->isNewSlugNeeded()) {
             $slugParts = [];
             foreach ((array) $this->attribute as $attribute) {
                 $slugParts[] = $this->owner->{$attribute};
             }
             $slug = $this->generateSlug($slugParts);
         } else {
             return $this->owner->{$this->slugAttribute};
         }
     } else {
         $slug = parent::getValue($event);
     }
     return $this->ensureUnique ? $this->makeUnique($slug) : $slug;
 }
예제 #2
0
 /**
  * @inheritdoc
  */
 protected function getValue($event)
 {
     $isNewSlug = true;
     if ($this->attribute !== null) {
         $attributes = (array) $this->attribute;
         /* @var $owner BaseActiveRecord */
         $owner = $this->owner;
         if (!empty($owner->{$this->slugAttribute})) {
             $isNewSlug = false;
             if (!$this->immutable) {
                 foreach ($attributes as $attribute) {
                     if ($owner->isAttributeChanged($attribute)) {
                         $isNewSlug = true;
                         break;
                     }
                 }
             }
         }
         if ($isNewSlug) {
             $slugParts = [];
             foreach ($attributes as $attribute) {
                 $slugParts[] = $owner->{$attribute};
             }
             $slug = $this->generateSlug($slugParts);
         } else {
             $slug = $owner->{$this->slugAttribute};
         }
     } else {
         $slug = parent::getValue($event);
     }
     if ($this->ensureUnique && $isNewSlug) {
         $baseSlug = $slug;
         $iteration = 0;
         while (!$this->validateSlug($slug)) {
             $iteration++;
             $slug = $this->generateUniqueSlug($baseSlug, $iteration);
         }
     }
     return $slug;
 }
예제 #3
0
 /**
  * @inheritdoc
  *
  * In case, when the [[value]] is `null`, the result of the PHP function [time()](http://php.net/manual/en/function.time.php)
  * will be used as value.
  */
 protected function getValue($event)
 {
     if ($this->value === null) {
         return time();
     }
     return parent::getValue($event);
 }
예제 #4
0
 /**
  * @inheritdoc
  *
  * In case, when the [[value]] property is `null`, the value of `Yii::$app->user->id` will be used as the value.
  */
 protected function getValue($event)
 {
     if ($this->value === null) {
         $user = Yii::$app->get('user', false);
         return $user && !$user->isGuest ? $user->id : null;
     }
     return parent::getValue($event);
 }
예제 #5
0
 /**
  * @inheritdoc
  *
  * In case, when the [[value]] is `null`, position of last created entity or default value
  * will be used as value.
  */
 protected function getValue($event)
 {
     if ($this->value === null) {
         if (!$this->owner instanceof ActiveRecordInterface) {
             throw new \LogicException('Owner should be instanceof ActiveRecordInterface');
         }
         if (!($last = $this->owner->find()->orderBy([$this->positionAttribute => SORT_DESC])->one())) {
             return $this->defaultValue;
         }
         return $last->{$this->positionAttribute} + 1;
     }
     return parent::getValue($event);
 }
 /**
  * @inheritdoc
  *
  * In case, when the [[value]] is `null`, the result of the PHP function [time()](http://php.net/manual/en/function.time.php)
  * will be used as value.
  */
 protected function getValue($event)
 {
     if ($this->value === null) {
         return \Yii::$app->user->id;
     }
     return parent::getValue($event);
 }