/** * @param boolean $includeRequired * @param boolean $includeNonRequired * @param $includeReadOnly * @return array */ protected function resolveAttributesForActionsOrTimeTriggerData($includeRequired = false, $includeNonRequired = false, $includeReadOnly = false) { assert('is_bool($includeRequired)'); assert('is_bool($includeNonRequired)'); assert('is_bool($includeReadOnly)'); $attributes = array(); foreach ($this->model->getAttributes() as $attribute => $notUsed) { if ((!$this->model->isAttributeReadOnly($attribute) || $includeReadOnly) && ($this->model->isRelation($attribute) && $this->rules->relationIsUsedAsAttribute($this->model, $attribute) || !$this->model->isRelation($attribute) && $this->rules->attributeCanBeTriggered($this->model, $attribute))) { $attributeIsRequired = $this->model->isAttributeRequired($attribute); if ($includeNonRequired && !$attributeIsRequired || $includeRequired && $attributeIsRequired) { $attributes[$attribute] = array('label' => $this->model->getAttributeLabel($attribute)); } } } return $attributes; }