/** * Gets the configurations for the given model's attributes * @param ActiveRecord $model the active record to get attributes for * * @return array the attribute config */ protected function getAttributeConfigs(ActiveRecord $model) { $types = $model->attributeTypes(); $descriptions = $model->attributeDescriptions(); $attributes = array(); foreach ($model->getVisibleAttributeNames() as $attribute) { $validators = array(); foreach ($model->getValidators($attribute) as $validator) { if ($validator->enableClientValidation && ($js = $validator->clientValidateAttribute($model, $attribute)) !== null) { $validators[] = $js; } } $attributes[$attribute] = array('label' => $model->getAttributeLabel($attribute), 'type' => isset($types[$attribute]) ? $types[$attribute] : null, 'description' => isset($descriptions[$attribute]) ? $descriptions[$attribute] : null, 'writable' => $model->isAttributeSafe($attribute), 'required' => $model->isAttributeRequired($attribute), 'validators' => $validators); } return $attributes; }