我使用方法$this>model->find()
得到一个数组,其中包含具有此形式的模型ID:
Array ( [0] => 2, [1] => 3) (value are the IDs)
我尝试$this->model->find('list')
我认为这也会有效,但出于某种奇怪的原因我做了:
$this->model->find('list',array('recursive' => -1 ,'fields' => array('model.type_id'),'conditions'=>$cond));
,查询结果为:
SELECT `model`.`round_id`, `model`.`type_id` FROM `database`.`model` AS `X` WHERE `X`.`Round_id` = '1'
如果我向数据库发出此查询返回两个值但是cakephp只返回一个:
Array ( [1] => 2 )
我不知道可能会发生
答案 0 :(得分:3)
我会用
$ids = $this->Model->find('list', array('fields' => array('id')));
如果你真的需要基于0的整数键,你仍然可以这样做:
$ids = array_values($ids);
但这不是必要的IMO。
更新:
更新问题后,问题本身的全部含义发生了变化:
如果只指定id,则它们的键和值都将被填充。
使用'fields' => array('round_id', 'type_id')
,您可以使用round_id填充键,并使用type_id填充查找(列表)的值。
find(list)总是返回一个列表(键+值行)。如果你不想那么使用find(all)那么。