Controller Class Info:

Class Declaration:

class Controller extends Object

File name:
cake/libs/controller/controller.php
Description:

Controller

Application controller class for organization of business logic. Provides basic functionality, such as rendering views inside layouts, automatic model availability, redirection, callbacks, and more.

Class Inheritance

Object

Properties:

Show/Hide parent properties
  • action string

    The name of the currently requested controller action.

  • autoLayout boolean

    Set to true to automatically render the layout around views.

  • autoRender boolean

    Set to true to automatically render the view after action logic.

  • base string

    Base URL path.

  • cacheAction mixed

    Used to define methods a controller that will be cached. To cache a single action, the value is set to an array containing keys that match action names and values that denote cache expiration times (in seconds).

    Example:

    var $cacheAction = array(
            'view/23/' => 21600,
            'recalled/' => 86400
        );

    $cacheAction can also be set to a strtotime() compatible string. This marks all the actions in the controller for view caching.

  • Component string

    Instance of Component used to handle callbacks.

  • components array

    Array containing the names of components this controller uses. Component names should not contain the "Component" portion of the classname.

    Example: var $components = array('Session', 'RequestHandler', 'Acl');

  • data array

    Data POSTed to the controller using the HtmlHelper. Data here is accessible using the $this->data['ModelName']['fieldName'] pattern.

  • ext string

    File extension for view templates. Defaults to Cake's conventional ".ctp".

  • helpers mixed A single name as a string or a list of names as an array.

    An array containing the names of helpers this controller uses. The array elements should not contain the "Helper" part of the classname.

    Example: var $helpers = array('Html', 'Javascript', 'Time', 'Ajax');

  • here string

    Stores the current URL, relative to the webroot of the application.

  • __httpCodes array Associative array of HTTP codes and their associated messages.

    Contains a list of the HTTP codes that CakePHP recognizes. These may be queried and/or modified through Controller::httpCodes(), which is also tasked with their lazy-loading.

  • layout string

    The name of the layout file to render the view inside of. The name specified is the filename of the layout in /app/views/layouts without the .ctp extension.

  • layoutPath string

    The name of the layouts subfolder containing layouts for this controller.

  • methods array

    Holds current methods of the controller

  • modelClass string

    This controller's primary model class name, the Inflector::classify()'ed version of the controller's $name property.

    Example: For a controller named 'Comments', the modelClass would be 'Comment'

  • modelKey string

    This controller's model key name, an underscored version of the controller's $modelClass property.

    Example: For a controller named 'ArticleComments', the modelKey would be 'article_comment'

  • modelNames array Array of model objects.

    An array containing the class names of the models this controller uses.

  • name string

    The name of this controller. Controller names are plural, named after the model they manipulate.

  • output string

    The output of the requested action. Contains either a variable returned from the action, or the data of the rendered view; You can use this var in child controllers' afterFilter() callbacks to alter output.

  • paginate array

    Holds pagination defaults for controller actions. The keys that can be included in this array are: 'conditions', 'fields', 'order', 'limit', 'page', and 'recursive', similar to the keys in the second parameter of Model::find().

    Pagination defaults can also be supplied in a model-by-model basis by using the name of the model as a key for a pagination array:

    var $paginate = array(
            'Post' => array(...),
            'Comment' => array(...)
        );

  • params array

    Parameters received in the current request: GET and POST data, information about the request, etc.

  • passedArgs mixed

    Holds all params passed and named.

  • persistModel boolean

    Used to create cached instances of models a controller uses. When set to true, all models related to the controller will be cached. This can increase performance in many cases.

  • plugin string

    Automatically set to the name of a plugin.

  • scaffold mixed

    Triggers Scaffolding

  • uses mixed A single name as a string or a list of names as an array.

    An array containing the class names of models this controller uses.

    Example: var $uses = array('Product', 'Post', 'Comment');

    Can be set to array() to use no models. Can be set to false to use no models and prevent the merging of $uses with AppController

  • validationErrors array Validation errors, or false if none

    Holds any validation errors produced by the last call of the validateErrors() method/

  • view string

    The name of the View class this controller sends output to.

  • viewPath string

    The name of the views subfolder containing views for this controller.

  • viewVars array

    Contains variables to be handed to the view.

  • webroot string

    The webroot of the application.

afterFilter

top

Called after the controller action is run and rendered.

Method defined in:
cake/libs/controller/controller.php on line 1270

_afterScaffoldSave

top

This method should be overridden in child classes.

Parameters:
  • string $method required

    name of method called either edit or update.

Method defined in:
cake/libs/controller/controller.php on line 1293
Return

boolean Success

Access

protected

Link
http://book.cakephp.org/view/984/Callbacks

_afterScaffoldSaveError

top

This method should be overridden in child classes.

Parameters:
  • string $method required

    name of method called either edit or update.

Method defined in:
cake/libs/controller/controller.php on line 1305
Return

boolean Success

Access

protected

Link
http://book.cakephp.org/view/984/Callbacks

beforeFilter

top

Called before the controller action.

Method defined in:
cake/libs/controller/controller.php on line 1252

beforeRender

top

Called after the controller action is run, but before the view is rendered.

Method defined in:
cake/libs/controller/controller.php on line 1261

_beforeScaffold

top

This method should be overridden in child classes.

Parameters:
  • string $method required

    name of method called example index, edit, etc.

Method defined in:
cake/libs/controller/controller.php on line 1281
Return

boolean Success

Access

protected

Link
http://book.cakephp.org/view/984/Callbacks

cakeError

top

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 required

    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

Method defined in:
cake/libs/object.php on line 187
Return

error message

Access

public

__construct

top

Constructor.

Method defined in:
cake/libs/controller/controller.php on line 362

constructClasses

top

Loads Model classes based on the the uses property see Controller::loadModel(); for more info. Loads Components and prepares them for initialization.

Method defined in:
cake/libs/controller/controller.php on line 485
Return

mixed true if models found and instance created, or cakeError if models not found.

Access

public

See

Controller::loadModel()

Link
http://book.cakephp.org/view/977/Controller-Methods#constructClasses-986

disableCache

top

Forces the user's browser not to cache the results of the current request.

Method defined in:
cake/libs/controller/controller.php on line 954
Return

void

Access

public

Link
http://book.cakephp.org/view/988/disableCache

dispatchMethod

top

Calls a method on this object with the given parameters. Provides an OO wrapper for call_user_func_array

Parameters:
  • string $method required

    Name of the method to call

  • array $params optional array ( )

    Parameter list to use when calling $method

Method defined in:
cake/libs/object.php on line 107
Return

mixed Returns the result of the method call

Access

public

flash

top

Shows a message to the user for $pause seconds, then redirects to $url. Uses flash.ctp as the default layout for the message. Does not work if the current debug level is higher than 0.

Parameters:
  • string $message required

    Message to display to the user

  • mixed $url required

    Relative string or array-based URL to redirect to after the time expires

  • integer $pause optional 1

    Time to show the message

  • string $layout optional 'flash'

    Layout you want to use, defaults to 'flash'

Method defined in:
cake/libs/controller/controller.php on line 975
Return

void Renders flash layout

Access

public

Link
http://book.cakephp.org/view/983/flash

header

top

Convenience and object wrapper method for header(). Useful when doing tests and asserting that particular headers have been set.

Parameters:
  • string $status required

    The header message that is being set.

Method defined in:
cake/libs/controller/controller.php on line 745
Return

void

Access

public

httpCodes

top

Queries & sets valid HTTP response codes & messages.

httpCodes(404); // returns array(404 => 'Not Found')

   httpCodes(array(
       701 => 'Unicorn Moved',
       800 => 'Unexpected Minotaur'

)); // sets these new values, and returns true

Parameters:
  • mixed $code optional NULL

    If $code is an integer, then the corresponding code/message is returned if it exists, null if it does not exist. If $code is an array, then the 'code' and 'message' keys of each nested array are added to the default HTTP codes. Example:

Method defined in:
cake/libs/controller/controller.php on line 563
Return

mixed Associative array of the HTTP codes as keys, and the message strings as values, or null of the given $code does not exist.

isAuthorized

top

Controller callback to tie into Auth component. Only called when AuthComponent::$authorize is set to 'controller'.

Method defined in:
cake/libs/controller/controller.php on line 805
Return

bool true if authorized, false otherwise

Access

public

Link
http://book.cakephp.org/view/1275/authorize

loadModel

top

Loads and instantiates models required by this controller. If Controller::$persistModel; is true, controller will cache model instances on first request, additional request will used cached models. If the model is non existent, it will throw a missing database table error, as Cake generates dynamic models for the time being.

Parameters:
  • string $modelClass optional NULL

    Name of model class to load

  • mixed $id optional NULL

    Initial ID the instanced model class should have

Method defined in:
cake/libs/controller/controller.php on line 613
Return

mixed true when single model found and instance created, error returned if model not found.

Access

public

log

top

Convience method to write a message to CakeLog. See CakeLog::write() for more information on writing to logs.

Parameters:
  • string $msg required

    Log message

  • integer $type optional 2

    Error type constant. Defined in app/config/core.php.

Method defined in:
cake/libs/object.php on line 148
Return

boolean Success of log write

Access

public

__mergeVars

top

Merge components, helpers, and uses vars from AppController and PluginAppController.

Method defined in:
cake/libs/controller/controller.php on line 399
Return

void

Access

protected

Object

top

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()

Method defined in:
cake/libs/object.php on line 43
Return

Object

__openPersistent

top

Open the persistent class file for reading Used by Object::_persist()

Parameters:
  • string $name required

    Name of persisted class

  • string $type optional NULL

    Type of persistance (e.g: registry)

Method defined in:
cake/libs/object.php on line 268
Return

void

Access

private

paginate

top

Handles automatic pagination of model records.

Parameters:
  • mixed $object optional NULL

    Model to paginate (e.g: model instance, or 'Model', or 'Model.InnerModel')

  • mixed $scope optional array ( )

    Conditions to use while paginating

  • array $whitelist optional array ( )

    List of allowed options for paging

Method defined in:
cake/libs/controller/controller.php on line 1054
Return

array Model query results

Access

public

Link
http://book.cakephp.org/view/1232/Controller-Setup

_persist

top

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 required

    name of the class to persist

  • $return required

  • string $object required

    the object to persist

  • $type optional NULL

Method defined in:
cake/libs/object.php on line 218
Return

boolean Success

Access

protected

Todo

add examples to manual

postConditions

top

Converts POST'ed form data to a model conditions array, suitable for use in a Model::find() call.

Parameters:
  • array $data optional array ( )

    POST'ed data organized by model and field

  • mixed $op optional NULL

    A string containing an SQL comparison operator, or an array matching operators to fields

  • string $bool optional 'AND'

    SQL boolean operator: AND, OR, XOR, etc.

  • boolean $exclusive optional false

    If true, and $op is an array, fields not included in $op will not be included in the returned conditions

Method defined in:
cake/libs/controller/controller.php on line 997
Return

array An array of model conditions

Access

public

Link
http://book.cakephp.org/view/989/postConditions

redirect

top

Redirects to given $url, after turning off $this->autoRender. Script execution is halted after the redirect.

Parameters:
  • mixed $url required

    A string or array-based URL pointing to another location within the app, or an absolute URL

  • integer $status optional NULL

    Optional HTTP status code (eg: 404)

  • boolean $exit optional true

    If true, exit() will be called after the redirect

Method defined in:
cake/libs/controller/controller.php on line 676
Return

mixed void if $exit = false. Terminates script if $exit = true

Access

public

Link
http://book.cakephp.org/view/982/redirect

referer

top

Returns the referring URL for this request.

Parameters:
  • string $default optional NULL

    Default URL to use if HTTP_REFERER cannot be read from headers

  • boolean $local optional false

    If true, restrict referring URLs to local server

Method defined in:
cake/libs/controller/controller.php on line 925
Return

string Referring URL

Access

public

Link
http://book.cakephp.org/view/987/referer

render

top

Instantiates the correct view class, hands it its data, and uses it to render the view output.

Parameters:
  • string $action optional NULL

    Action name to render

  • string $layout optional NULL

    Layout to use

  • string $file optional NULL

    File to use for rendering

Method defined in:
cake/libs/controller/controller.php on line 863
Return

string Full output string of view contents

Access

public

Link
http://book.cakephp.org/view/980/render

requestAction

top

Calls a controller's method from any location. Can be used to connect controllers together or tie plugins into a main application. requestAction can be used to return rendered views or fetch the return value from controller actions.

Parameters:
  • mixed $url required

    String or array-based url.

  • array $extra optional array ( )

    if array includes the key "return" it sets the AutoRender to true.

Method defined in:
cake/libs/object.php on line 80
Return

mixed Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.

Access

public

_savePersistent

top

You should choose a unique name for the persistent file

There are many uses for this method, see manual for examples

Parameters:
  • string $name required

    name used for object to cache

  • object $object required

    the object to persist

Method defined in:
cake/libs/object.php on line 247
Return

boolean true on save, throws error if file can not be created

Access

protected

_scaffoldError

top

This method should be overridden in child classes. If not it will render a scaffold error. Method MUST return true in child classes

Parameters:
  • string $method required

    name of method called example index, edit, etc.

Method defined in:
cake/libs/controller/controller.php on line 1319
Return

boolean Success

Access

protected

Link
http://book.cakephp.org/view/984/Callbacks

set

top

Saves a variable for use inside a view template.

Parameters:
  • mixed $one required

    A string or an array of data.

  • mixed $two optional NULL

    Value in case $one is a string (which then works as the key). Unused if $one is an associative array, otherwise serves as the values to $one's keys.

Method defined in:
cake/libs/controller/controller.php on line 759
Return

void

Access

public

Link
http://book.cakephp.org/view/979/set

_set

top

Allows setting of multiple properties of the object in a single line of code. Will only set properties that are part of a class declaration.

Parameters:
  • array $properties optional array ( )

    An associative array containing properties and corresponding values.

Method defined in:
cake/libs/object.php on line 166
Return

void

Access

protected

setAction

top

Internally redirects one action to another. Does not perform another HTTP request unlike Controller::redirect()

Examples:

setAction('another_action');
setAction('action_with_parameters', $parameter1);

Parameters:
  • string $action required

    The new action to be 'redirected' to

Method defined in:
cake/libs/controller/controller.php on line 790
Return

mixed Returns the return value of the called action

Access

public

shutdownProcess

top

Perform the various shutdown processes for this controller. Fire the Component and Controller callbacks in the correct order.

  • triggers the component shutdown callback.
  • calls the Controller's afterFilter method.

Method defined in:
cake/libs/controller/controller.php on line 540
Return

void

Access

public

startupProcess

top

Perform the startup process for this controller. Fire the Component and Controller callbacks in the correct order.

  • Initializes components, which fires their initialize callback
  • Calls the controller beforeFilter.
  • triggers Component startup methods.

Method defined in:
cake/libs/controller/controller.php on line 524
Return

void

Access

public

_stop

top

Stop execution of the current script. Wraps exit() making testing easier.

Parameters:
  • $status optional 0

Method defined in:
cake/libs/object.php on line 135
Return

void

Access

public

toString

top

Object-to-string conversion. Each class can override this method as necessary.

Method defined in:
cake/libs/object.php on line 64
Return

string The name of this class

Access

public

validate

top

Returns number of errors in a submitted FORM.

Method defined in:
cake/libs/controller/controller.php on line 818
Return

integer Number of errors

Access

public

validateErrors

top

Validates models passed by parameters. Example:

$errors = $this->validateErrors($this->Article, $this->User);

Method defined in:
cake/libs/controller/controller.php on line 837
Return

array Validation errors, or false if none

Access

public