在我的模型中,我有这个
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' 它将按预期工作。