2009-11-06 53 views
0

我想检索字段中的多个值。代码我用这本cakephp检索列中的多个值

$conditions = array('Tag.name'=>$compare);//$compare = array('value1', 'value2',..); 
$values = $this->find('all', array('conditions' => $conditions)); 

但它一直走出这样

SELECT `Tag`.`id`, `Tag`.`name`, `Tag`.`count` FROM `tags` AS `Tag` WHERE `Tag`.`name` IN ('tag2', ' tag1', ' one tag') 

问题是,它仅检索给出的第一个值。而不是所有的价值。我如何得到它来选择数组中的所有值。

+0

这是它生成的整个查询吗? – Jason 2009-11-06 15:51:57

+0

您确定标签表中有'tag2','tag1','one tag'标签吗?粘贴var_dump($ values);在这里打印出来。 – neilcrookes 2009-11-06 20:32:37

回答

2

您使用的是什么版本的Cake?

但主要是你的条件需要在一个字段数组。

find('all', array(
'conditions' => array('name' => 'Thomas Anderson'), 
'fields' => array('name', 'email'), 
'order' => 'field3 DESC', 
'recursive' => 2, 
'group' => 'type' 
)); 

参考,Model::find() API Docs

查询不工作的原因是,你需要将它移动到该模式..

所以,你的查询会是这样,

$compare = array('value1', 'value2'); 
$values = $this->Model->find('all', array('fields' => $compare)); 

不确定您的示例是否打算省略它,但始终最好包含您正在运行查找的模型:)