找到方法足够灵活,能够接受您的自定义查找器,这是通过宣称自己的类型在一个模型中变量和模型类通过实现特殊功能。
以下是核心找到类型:
第一个
所有
数
列表
螺纹
邻居
但是其他类型呢?让我们假设你想要一个查找器所有的文章发表在您的数据库。第一个变化你需要做的就是将你的类型添加到模型::$ findMethods变量在模型中
基本上这只是告诉CakePHP接受价值发现函数的第一个参数。下一步是_findAvailable来实现功能。这样做是按照惯例,如果你想实现一个finder称为myFancySearch进而实现方法将_findMyFancySearch命名。
这一切都是在下面的例子(控制器代码):
一个模型找到类型是捷径找到选项。例如,下面的两个发现是等价的
$this->User->find('first');
$this->User->find('all', array('limit' => 1));
以下是核心找到类型:
第一个
所有
数
列表
螺纹
邻居
但是其他类型呢?让我们假设你想要一个查找器所有的文章发表在您的数据库。第一个变化你需要做的就是将你的类型添加到模型::$ findMethods变量在模型中
class Article extends AppModel {
public $findMethods = array('available' => true);
}
基本上这只是告诉CakePHP接受价值发现函数的第一个参数。下一步是_findAvailable来实现功能。这样做是按照惯例,如果你想实现一个finder称为myFancySearch进而实现方法将_findMyFancySearch命名。
class Article extends AppModel {
public $findMethods = array('available' => true);
protected function _findAvailable($state, $query, $results = array()) {
if ($state === 'before') {
$query['conditions']['Article.published'] = true;
return $query;
}
return $results;
}
}
这一切都是在下面的例子(控制器代码):
class ArticlesController extends AppController {
// Will find all published articles and order them by the created column
public function index() {
$articles = $this->Article->find('available', array(
'order' => array('created' => 'desc')
));
}
}