CakePHP:如何通过多个条件检索数据

时间:2013-05-04 15:46:44

标签: php cakephp

请帮我从Cakephp中的多个条件中检索表中的数据 我有一个表名:article;我试图用下面的代码检索数据 我想获得参数中给出的特定id; article_price> 0和article_status> 1

public function getArticle($artID = ''){
     return $this->find('all', array(
         'condition' => array(
                            'article_id =' => $artID, 
                            'article_price' => '> 0',
                            'article_status = ' => '1'),
         'order' => 'article_id DESC'
     ));
}

//输出了所有数据而没有我想要的条件。

我的代码有什么问题?
我发现的是我打印: echo $ this-> element('sql_dump'); ,我得到了以下sql语句:

SELECT `article`.`article_id`, `article`.`name`, `article`.`article_price`, `article`.`article_status` FROM `db_1stcakephp`.`article` AS `article` WHERE 1 = 1 ORDER BY `article_id` DESC

请帮帮我。 谢谢!

1 个答案:

答案 0 :(得分:3)

如果您的型号名称是Article:

public function getArticle($art_id) {
    return $this->find('first', array(
        'conditions' => array(
            'Article.article_id' => $art_id,
            'Article.article_price >' => 0,
            'Article.article_status >' => 1,
        ),
    ));
}

使用'Model.field'语法是可选的,直到您的模型具有关系并具有相同的名称 - 例如Article.status和Author.status。

将比较符号移动到数组的关键部分允许您执行:

'Article.price >'   => $minPrice,
'Article.price <='  => $maxPrice,

我并没有真正注意到“条件”中的拼写错误。