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

时间:2013-06-17 01:47:10

标签: php cakephp

在我的模型中,我有这个

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 但这两种选择都没有奏效。我对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'它将按预期工作。

1 个答案:

答案 0 :(得分:2)

这样:

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