在我的模型中,我有这个
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'它将按预期工作。
答案 0 :(得分:2)
这样:
function pieChartTwo($limit = null, $conditions = null) {
...
}