2009-11-06 4 views
0

Je souhaite extraire des valeurs multiples d'un champ. le code J'utilise ce cecakephp récupération de plusieurs valeurs dans une colonne

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

Mais il revient sans cesse comme ça

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

problème est-il récupère seulement la première valeur donnée. au lieu de toutes les valeurs. Comment l'obtenir pour sélectionner toutes les valeurs dans le tableau.

+0

Est-ce la requête entière qu'il génère? – Jason

+0

Etes-vous sûr qu'il y a des balises 'tag2', 'tag1', 'one tag' dans votre tableau de balises? Collez le var_dump ($ values); imprimer retour ici. – neilcrookes

Répondre

2

Quelle version de Cake utilisez-vous? Mais la chose principale est que vos conditions doivent être dans un tableau de champs.

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

Ref, Model::find() API Docs

La raison pour laquelle votre requête ne fonctionne pas est que vous devez déplacer dans ce modèle ..

Ainsi, votre requête serait,

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

Pas sûr sur votre exemple si vous vouliez l'omettre, mais toujours mieux d'inclure le modèle que vous utilisez la recherche par rapport à :)

Questions connexes