函数的()内部设置为null的两个变量


Two variables set to null inside ( ) of function

在我的模型中,我有这个

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

在函数的圆括号内。我试过了。和$limit,$conditions = null但这两种选择都不起作用。我不是太有经验的面向对象,但我认为有一种方法可以做到这一点?

编辑:

更新的代码,仍然不工作。第一个出现在函数括号内的变量是起作用的,第二个变量就像不存在一样

模型:

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',它将按预期工作

这样

function pieChartTwo($limit = null, $conditions = null) {
  ...
}