2009-11-06 61 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)); 

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