0 follower

CFormModel

Package system.web
Inheritance class CFormModel » CModel » CComponent
Implements ArrayAccess, Traversable, IteratorAggregate
Since 1.0
Version $Id$
Source Code framework/web/CFormModel.php
CFormModel represents a data model that collects HTML form inputs.

Unlike CActiveRecord, the data collected by CFormModel are stored in memory only, instead of database.

To collect user inputs, you may extend CFormModel and define the attributes whose values are to be collected from user inputs. You may override rules() to declare validation rules that should be applied to the attributes.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
attributes array Returns all attribute values. CModel
errors array Returns the errors for all attribute or a single attribute. CModel
iterator CMapIterator Returns an iterator for traversing the attributes in the model. CModel
safeAttributeNames array Returns the attribute names that are safe to be massively assigned. CModel
scenario string Returns the scenario that this model is in. CModel
validators array list of validators created according to rules. CFormModel

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. CComponent
__construct() Constructor. CFormModel
__get() Returns a property value, an event handler list or a behavior based on its name. CComponent
__isset() Checks if a property value is null. CComponent
__set() Sets value of a component property. CComponent
__unset() Sets a component property to be null. CComponent
addError() Adds a new error to the specified attribute. CModel
addErrors() Adds a list of errors. CModel
asa() Returns the named behavior object. CComponent
attachBehavior() Attaches a behavior to this component. CComponent
attachBehaviors() Attaches a list of behaviors to the component. CComponent
attachEventHandler() Attaches an event handler to an event. CComponent
attributeLabels() Returns the attribute labels. CModel
attributeNames() Returns the list of attribute names. CFormModel
behaviors() Returns a list of behaviors that this model should behave as. CModel
canGetProperty() Determines whether a property can be read. CComponent
canSetProperty() Determines whether a property can be set. CComponent
clearErrors() Removes errors for all attributes or a single attribute. CModel
createValidators() CModel
detachBehavior() Detaches a behavior from the component. CComponent
detachBehaviors() Detaches all behaviors from the component. CComponent
detachEventHandler() Detaches an existing event handler. CComponent
disableBehavior() Disables an attached behavior. CComponent
disableBehaviors() Disables all behaviors attached to this component. CComponent
enableBehavior() Enables an attached behavior. CComponent
enableBehaviors() Enables all behaviors attached to this component. CComponent
generateAttributeLabel() Generates a user friendly attribute label. CModel
getAttributeLabel() Returns the text label for the specified attribute. CModel
getAttributes() Returns all attribute values. CModel
getError() Returns the first error of the specified attribute. CModel
getErrors() Returns the errors for all attribute or a single attribute. CModel
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
getIterator() Returns an iterator for traversing the attributes in the model. CModel
getSafeAttributeNames() Returns the attribute names that are safe to be massively assigned. CModel
getScenario() Returns the scenario that this model is in. CModel
getValidators() Returns list of validators created according to rules. CFormModel
getValidatorsForAttribute() Returns the validators that are applied to the specified attribute under the specified scenario. CModel
hasErrors() Returns a value indicating whether there is any validation error. CModel
hasEvent() Determines whether an event is defined. CComponent
hasEventHandler() Checks whether the named event has attached handlers. CComponent
hasProperty() Determines whether a property is defined. CComponent
init() Initializes this model. CFormModel
isAttributeRequired() Returns a value indicating whether the attribute is required. CModel
offsetExists() Returns whether there is an element at the specified offset. CModel
offsetGet() Returns the element at the specified offset. CModel
offsetSet() Sets the element at the specified offset. CModel
offsetUnset() Unsets the element at the specified offset. CModel
onAfterValidate() This event is raised after the validation is performed. CModel
onBeforeValidate() This event is raised before the validation is performed. CModel
raiseEvent() Raises an event. CComponent
rules() Returns the validation rules for attributes. CModel
safeAttributes() Returns the name of attributes that are safe to be massively assigned. CFormModel
setAttributes() Sets the attribute values in a massive way. CModel
setScenario() Sets the scenario that this model is in. CModel
validate() Performs the validation. CModel

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
afterValidate() This method is invoked after validation ends. CModel
beforeValidate() This method is invoked before validation starts. CModel

Events

Hide inherited events

EventDescriptionDefined By
onBeforeValidate This event is raised before the validation is performed. CModel
onAfterValidate This event is raised after the validation is performed. CModel

Property Details

validators property read-only
public array getValidators()

list of validators created according to rules.

Method Details

__construct() method
public void __construct(array $attributes=array ( ), string $scenario='')
$attributes array initial attributes (name => value). The attributes are subject to filtering via setAttributes.
$scenario string scenario name. See setAttributes for more details about this parameter. This parameter has been available since version 1.0.2. As of version 1.0.4, this parameter will be used to set the scenario property of the model.
Source Code: framework/web/CFormModel.php#42 (show)
public function __construct($attributes=array(),$scenario='')
{
    
$this->setScenario($scenario);

    
$this->init();

    if(
$attributes!==array())
        
$this->setAttributes($attributes);
    
$this->attachBehaviors($this->behaviors());
}

Constructor.

See Also

attributeNames() method
public array attributeNames()
{return} array list of attribute names. Defaults to all public properties of the class.
Source Code: framework/web/CFormModel.php#85 (show)
public function attributeNames()
{
    
$className=get_class($this);
    if(!isset(
self::$_names[$className]))
    {
        
$class=new ReflectionClass(get_class($this));
        
$names=array();
        foreach(
$class->getProperties() as $property)
        {
            
$name=$property->getName();
            if(
$property->isPublic() && !$property->isStatic())
                
$names[]=$name;
        }
        return 
self::$_names[$className]=$names;
    }
    else
        return 
self::$_names[$className];
}

Returns the list of attribute names. By default, this method returns all public properties of the class. You may override this method to change the default.

getValidators() method
public array getValidators()
{return} array list of validators created according to rules.
Source Code: framework/web/CFormModel.php#107 (show)
public function getValidators()
{
    if(
$this->_validators===null)
        
$this->_validators=$this->createValidators();
    return 
$this->_validators;
}

init() method (available since v1.0.8)
public void init()
Source Code: framework/web/CFormModel.php#60 (show)
public function init()
{
}

Initializes this model. This method is invoked in the constructor right after scenario is set. You may override this method to provide code that is needed to initialize the model (e.g. setting initial property values.)

safeAttributes() method (available since v1.0.2)
public array safeAttributes()
{return} array list of safe attribute names.
Source Code: framework/web/CFormModel.php#74 (show)
public function safeAttributes()
{
    return 
$this->attributeNames();
}

Returns the name of attributes that are safe to be massively assigned. The default implementation simply returns attributeNames. This method may be overridden by child classes. See CModel::safeAttributes for more details about how to override this method.