Class ContainableBehavior
Behavior to allow for dynamic and atomic manipulation of a Model's associations used for a find call. Most useful for limiting the amount of associations and data returned.
- Object
- ModelBehavior
- ContainableBehavior
Copyright: Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
License: The MIT License
Location: model/behaviors/containable.php
Properties summary
Inherited Properties
Method Summary
-
afterFind() public
Resets original associations on models that may have receive multiple, subsequent unbindings.
-
beforeFind() public
Runs before a find() operation. Used to allow 'contain' setting as part of the find call, like this:
-
contain() public
Unbinds all relations from a model except the specified ones. Calling this function without parameters unbinds all related models.
-
containments() public
Process containments for model. -
containmentsMap() public
Build the map of containments -
fieldDependencies() public
Calculate needed fields to fetch the required bindings for the given model. -
resetBindings() public
Permanently restore the original binding settings of given model, useful for restoring the bindings after using 'reset' => false as part of the contain call.
-
setup() public
Initiate behavior for the model using specified settings.
Method Detail
afterFind() public ¶
afterFind( object $Model , array $results , boolean $primary )
Resets original associations on models that may have receive multiple, subsequent unbindings.
Parameters
- object $Model
- Model on which we are resetting
- array $results
- Results of the find operation
- boolean $primary
- true if this is the primary model that issued the find operation, false otherwise
Returns
Result of the find operation
Overrides
beforeFind() public ¶
beforeFind( object $Model , array $query )
Runs before a find() operation. Used to allow 'contain' setting as part of the find call, like this:
Model->find('all', array('contain' => array('Model1', 'Model2')));
{{{ Model->find('all', array('contain' => array( 'Model1' => array('Model11', 'Model12'), 'Model2', 'Model3' => array( 'Model31' => 'Model311', 'Model32', 'Model33' => array('Model331', 'Model332') ))); }}}
Parameters
- object $Model
- Model using the behavior
- array $query
- Query parameters as set by cake
Returns
Overrides
contain() public ¶
contain( object $Model )
Unbinds all relations from a model except the specified ones. Calling this function without parameters unbinds all related models.
Parameters
- object $Model
- Model on which binding restriction is being applied
containments() public ¶
containments( object $Model , array $contain , array $containments = array() , boolean $throwErrors = null )
Process containments for model.
Parameters
- object $Model
- Model on which binding restriction is being applied
- array $contain
- Parameters to use for restricting this model
- array $containments optional array()
- Current set of containments
- boolean $throwErrors optional null
- Wether unexisting bindings show throw errors
Returns
Containments
containmentsMap() public ¶
containmentsMap( array $containments )
Build the map of containments
Parameters
- array $containments
- Containments
Returns
Built containments
fieldDependencies() public ¶
fieldDependencies( object $Model , array $map , mixed $fields = array() )
Calculate needed fields to fetch the required bindings for the given model.
Parameters
- object $Model
- Model
- array $map
- Map of relations for given model
- mixed $fields optional array()
- If array, fields to initially load, if false use $Model as primary model
Returns
Fields
resetBindings() public ¶
resetBindings( object $Model )
Permanently restore the original binding settings of given model, useful for restoring the bindings after using 'reset' => false as part of the contain call.
Parameters
- object $Model
- Model on which to reset bindings
setup() public ¶
setup( object $Model , array $settings = array() )
Initiate behavior for the model using specified settings.
Available settings:
- recursive: (boolean, optional) set to true to allow containable to automatically determine the recursiveness level needed to fetch specified models, and set the model recursiveness to this level. setting it to false disables this feature. DEFAULTS TO: true
- notices: (boolean, optional) issues E_NOTICES for bindings referenced in a containable call that are not valid. DEFAULTS TO: true
- autoFields: (boolean, optional) auto-add needed fields to fetch requested bindings. DEFAULTS TO: true
Parameters
- object $Model
- Model using the behavior
- array $settings optional array()
- Settings to override for model.
Overrides
Methods inherited from ModelBehavior
_addToWhitelist() public ¶
_addToWhitelist( object $model , string $field )
If $model's whitelist property is non-empty, $field will be added to it. Note: this method should only be used in beforeValidate or beforeSave to ensure that it only modifies the whitelist for the current save operation. Also make sure you explicitly set the value of the field which you are allowing.
Parameters
- object $model
- Model using this behavior
- string $field
- Field to be added to $model's whitelist
afterDelete() public ¶
afterDelete( object $model )
After delete callback
Parameters
- object $model
- Model using this behavior
afterSave() public ¶
afterSave( object $model , boolean $created )
After save callback
Parameters
- object $model
- Model using this behavior
- boolean $created
- True if this save created a new record
beforeDelete() public ¶
beforeDelete( object $model , boolean $cascade = true )
Before delete callback
Parameters
- object $model
- Model using this behavior
- boolean $cascade optional true
- If true records that depend on this record will also be deleted
Returns
True if the operation should continue, false if it should abort
beforeSave() public ¶
beforeSave( object $model )
Before save callback
Parameters
- object $model
- Model using this behavior
Returns
True if the operation should continue, false if it should abort
beforeValidate() public ¶
beforeValidate( object $model )
Before validate callback
Parameters
- object $model
- Model using this behavior
Returns
True if validate operation should continue, false to abort
cleanup() public ¶
cleanup( object $model )
Clean up any initialization this behavior has done on a model. Called when a behavior is dynamically detached from a model using Model::detach().
Parameters
- object $model
- Model using this behavior
See
dispatchMethod() public ¶
dispatchMethod( string $model , array $method , $params = array() )
Overrides Object::dispatchMethod to account for PHP4's broken reference support
Parameters
- string $model
- $method Name of the method to call
- array $method
- $params Parameter list to use when calling $method
- $params optional array()
Returns
See
Overrides
Methods inherited from Object
Object() public ¶
Object( )
A hack to support __construct() on PHP 4 Hint: descendant classes have no PHP4 class_name() constructors, so this constructor gets called first and calls the top-layer __construct() which (if present) should call parent::__construct()
Returns
__openPersistent() public ¶
__openPersistent( string $name , string $type = null )
Open the persistent class file for reading Used by Object::_persist()
Parameters
- string $name
- Name of persisted class
- string $type optional null
- Type of persistance (e.g: registry)
_persist() public ¶
_persist( string $name , string $return , $object , $type = null )
Checks for a persistent class file, if found file is opened and true returned If file is not found a file is created and false returned If used in other locations of the model you should choose a unique name for the persistent file There are many uses for this method, see manual for examples
Parameters
- string $name
- name of the class to persist
- string $return
- $object the object to persist
- $object
- $type optional null
Returns
Success
_savePersistent() public ¶
_savePersistent( string $name , object $object )
You should choose a unique name for the persistent file
There are many uses for this method, see manual for examples
Parameters
- string $name
- name used for object to cache
- object $object
- the object to persist
Returns
true on save, throws error if file can not be created
_set() public ¶
_set( array $properties = array() )
Allows setting of multiple properties of the object in a single line of code.
Parameters
- array $properties optional array()
- An associative array containing properties and corresponding values.
_stop() public ¶
_stop( $status = 0 )
Stop execution of the current script
Parameters
- $status optional 0
- http://php.net/exit for values
cakeError() public ¶
cakeError( string $method , array $messages = array() )
Used to report user friendly errors. If there is a file app/error.php or app/app_error.php this file will be loaded error.php is the AppError class it should extend ErrorHandler class.
Parameters
- string $method
- Method to be called in the error class (AppError or ErrorHandler classes)
- array $messages optional array()
- Message that is to be displayed by the error class
Returns
message
log() public ¶
log( string $msg , integer $type = LOG_ERROR )
API for logging events.
Parameters
- string $msg
- Log message
- integer $type optional LOG_ERROR
- Error type constant. Defined in app/config/core.php.
Returns
Success of log write
requestAction() public ¶
requestAction( mixed $url , array $extra = array() )
Calls a controller's method from any location.
Parameters
- mixed $url
- String or array-based url.
- array $extra optional array()
- if array includes the key "return" it sets the AutoRender to true.
Returns
Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.
toString() public ¶
toString( )
Object-to-string conversion. Each class can override this method as necessary.
Returns
The name of this class