Thursday, 24 July 2014

Cakephp Model Attributes

useDbConfig:
The useDbConfig property is a string that specifies the name of the database connection to use to bind your model class to the related database table.

Example usage:
class Example extends AppModel {
    public $useDbConfig = 'alternate';
}

useTable:
The useTable property specifies the database table name.

class Example extends AppModel {
    public $useTable = false; // This model does not use a database table
}

Alternatively:
class Example extends AppModel {
    public $useTable = 'exmp'; // This model uses a database table 'exmp'
}

Order

The default ordering of data for any find operation. Possible values include:
$order = "field"

$order = "Model.field";

$order = "Model.field asc";

$order = "Model.field ASC";

$order = "Model.field DESC";

$order = array("Model.field" => "asc", "Model.field2" => "DESC");

virtualFields

Array of virtual fields this model has. Virtual fields are aliased SQL expressions. Fields added to this property will be read as other fields in a model but will not be saveable.

Example usage for MySQL:

public $virtualFields = array(
    'name' => "CONCAT(User.first_name, ' ', User.last_name)"
);


Use model without table
class ContactOperation extends AppModel {
    public $useTable = false;
//Define the schema within the class as shown:
public $_schema = array(
'name' => array(
'type' => 'string',
'length' => 200,
'null' => false,
),
'email' => array(
'type' => 'string',
'length' => 150,
'null' => false,
),
'category_id' => array(
'type' => 'integer',
'null' => false,
),
'message' => array(
'type' => 'text',
'null' => false,
),
);

public function getCategoriesList() {
// this could be a find 'list' from
// another model
return array(
1 => 'Sales',
2 => 'Support',
3 => 'Query',
);
}
}


In controller function use model like this.
$model = ClassRegistry::init('ContactOperation'); 
$categories = $model->getCategoriesList(); // Call function in model
$this->set('categories', $categories);

0 comments:

Post a Comment