- 其它方法和属性
- Model::associations()
- Model::buildQuery(string $type = 'first', array $query = array())
- Model::deconstruct(string $field, mixed $data)
- Model::escapeField(string $field = null, string $alias = null)
- Model::exists($id)
- Model::getAffectedRows()
- Model::getAssociated(string $type = null)
- Model::getColumnType(string $column)
- Model::getColumnTypes()
- Model::getID(integer $list = 0)
- Model::getInsertID()
- Model::getLastInsertID()
其它方法和属性
虽然 CakePHP 的模型函数能够满足你的需要,但不要忘记模型类只是:类,让你可以定义自己的方法,或者定义自己的属性。
任何处理保存或读取数据的操作最好都写在模型类中。这个概念通常被称为胖模型。
- class Example extends AppModel {
- public function getRecent() {
- $conditions = array(
- 'created BETWEEN (curdate() - interval 7 day)' .
- ' and (curdate() - interval 0 day))'
- );
- return $this->find('all', compact('conditions'));
- }
- }
这个 getRecent()
方法现在可以在控制器中使用 。
- $recent = $this->Example->getRecent();
Model::associations()
获得关联:
- $result = $this->Example->associations();
- // $result 等于 array('belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany')
- // $result equals array('belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany')
Model::buildQuery(string $type = 'first', array $query = array())
构建查询数组,用于数据源生成查询来获取数据。
Model::deconstruct(string $field, mixed $data)
把复杂的数据类型(数组或对象)拆分成单个字段值。
Model::escapeField(string $field = null, string $alias = null)
转义字段名,并加上模型名作为前缀。转义遵循当前数据库驱动的规则。
Model::exists($id)
如果有特定 ID 的记录存在,则返回 true。
若没有提供 ID,会调用 Model::getID()
方法获得当前记录的 ID 来确认,然后在当前配置的数据源上执行 Model::find('count')
,以确定该记录在持久存储中是否存在。
注解
$id 参数是 2.1 版本中新增的。在此之前该方法不带任何参数。
- $this->Example->id = 9;
- if ($this->Example->exists()) {
- // ...
- }
- $exists = $this->Foo->exists(2);
Model::getAffectedRows()
返回上次查询所影响的行数。
Model::getAssociated(string $type = null)
获取与此模型关联的所有模型。
Model::getColumnType(string $column)
返回模型中的列的列类型。
Model::getColumnTypes()
返回(模型中)字段名和列类型的关联数组。
Model::getID(integer $list = 0)
返回当前记录的 ID。
Model::getInsertID()
返回此模型插入的最后一条记录的 ID。
Model::getLastInsertID()
getInsertID()
的别名。
当前内容版权归 cakephp.org 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 cakephp.org .