I moved line 121 inside the foreach , I pass $attribute in getValue and modified the method.
foreach ($attributes as $attribute) {
$value = $this->getValue($event, $attribute);
....
/**
* Returns the value for the current attributes.
* This method is called by [[evaluateAttributes()]]. Its return value will be assigned
* to the attributes corresponding to the triggering event.
* @param Event $event the event that triggers the current attribute updating.
* @param string $attribute the event that triggers the current attribute updating.
* @return mixed the attribute value
*/
protected function getValue($event, $attribute)
{
if ($this->value instanceof Closure || (is_array($this->value) && is_callable($this->value))) {
return call_user_func($this->value, $event, $attribute);
}
return $this->value;
}