创建自定义查找类型

找到方法足够灵活,能够接受您的自定义查找器,这是通过宣称自己的类型在一个模型中变量和模型类通过实现特殊功能。

一个模型找到类型是捷径找到选项。例如,下面的两个发现是等价的

$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')
        ));
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值