如何在CakePHP中为模型定义“全局”查找条件?

时间:2011-07-21 07:36:32

标签: cakephp

是否可以定义在使用特定模型的所有控制器和函数中始终有效的查找条件?

例如,如果我想只返回有库存的产品,无论如何。也许在模特的某个地方:

conditions => array('inStock >' => 0)

2 个答案:

答案 0 :(得分:2)

我认为您可以尝试在模型上执行一个函数,然后使用简单的行在控制器中调用它。

<强>控制器:

$productsInStock = $this->Product->getProductsInStock();

<强>型号:

function getProductsInStock() {  
            $produtcsInStock = $this->find('all', array('conditions' => array('inStock >' => 0)));
            return $productsInStock;          
}

或尝试此链接,我认为这会有所帮助。我对回调一无所知:http://book.cakephp.org/view/1049/beforeFind

答案 1 :(得分:2)

您可以通过覆盖特定模型中的beforeFind()来添加该逻辑:http://book.cakephp.org/view/1049/beforeFind

记得调用parent :: beforeFind();在开始。