什么是查找列表错误

时间:2013-01-25 10:16:08

标签: cakephp cakephp-2.0

我使用方法$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 )

我不知道可能会发生

1 个答案:

答案 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)那么。