0

在我的模型中,我有这个

function pieChart($conditions = null) {
    //Get Data for PieChart
    $this->RecordDrug->virtualFields['sum'] ='COUNT(*)';
    $records = array();
    $records=$this->RecordDrug->find('list',
        array(
            'conditions' => $conditions,
            'fields' => array( 'Drug.drug', 'sum'),
            'order' => array('sum' => 'desc'),
            'contain' => array( 'Drug', 'Record' ),
            'group'  => 'Drug.Drug'
            ));
    return $records;
}

这基本上意味着当这个函数被它自己调用时,没有设置条件。所以在我的控制器中,如果我愿意,我可以定义一个条件。我想做同样的事情,除了

'limit' => $limit,

我想我需要设置

$limit = null

在函数的括号内。我试过 & and 和 $limit,$conditions = null 但这些选项都不起作用。我对 OOP 没有太多经验,但我认为有办法做到这一点?

编辑:

更新了代码,还是不行。函数括号内的第一个变量是有效的,第二个只是表现得好像它不存在

模型:

function pieChart($limit = null, $conditions = null) {
    //Get Data for PieChart
    $this->RecordDrug->virtualFields['sum'] ='COUNT(*)';
    $records = array();
    $records=$this->RecordDrug->find('list',
        array(
            'conditions' => $conditions,
            'fields' => array( 'Drug.drug', 'sum','Record.unit'),
            'order' => array('sum' => 'desc'),
            'limit' => $limit,
            'contain' => array( 'Drug', 'Record' ),
            'group'  => 'Drug.Drug'
            ));
    debug($records);
    return $records;
}

控制器:

$conditions = array('Record.user_id' => $this->Session->read('Auth.User.id'));
$pieChart = $this->Record->pieChart($conditions);
$this->set('output',$pieChart); 

即使在这个条件变量之后,它也不仅仅加载用户数据。如果我要删除 '$limit = null' 它将按预期工作。

4

1 回答 1

2

这边走:

function pieChartTwo($limit = null, $conditions = null) {
  ...
}
于 2013-06-17T02:08:44.087 回答