2017-10-03 4 views
0

J'essaie d'imprimer les données de cette requête où bstockBooksTableResearchIds est égal à array (1,2,3), mais une erreur s'affiche en dessous:Impression de données avec une condition égale à un tableau d'identifiants à l'aide de cake php

$bstockBooksTableResearches = $this->BstockIn->BstockResearchs->find('list', [ 
      'conditions' => ['BstockResearchs.id' => $bstockBooksTableResearchIds], 

       ]) ; 

enter image description here

+0

Ce n'est pas une erreur, c'est la décharge d'un objet de requête, comme '(aide)' contenu clés indiquent. – ndm

+2

Copie possible de [Comment créer une clause \ 'IN \' dans une requête CakePHP?] (Https://stackoverflow.com/questions/26887511/how-to-create-a-in-clause-in-cakephp-query – ndm

Répondre

0

essayez ceci:

$bstockBooksTableResearches = $this->BstockIn->BstockResearchs->find('list', array(
       'conditions' =>array (
    'BstockResearchs.id' => $bstockBooksTableResearchIds), 

        )) ; 

changements: à l'article devrait être dans le tableau.

+0

** les accolades carrées ne sont pas autorisées ** où cela a-t-il été dit ?? @Sucharitha – tarikul05

+0

@ tarikul05: Dans mon cas pour les valeurs directes, les accolades carrées fonctionnent, mais dans les variables, elles ont généré une erreur. donc je pensais que ça ne marcherait pas. – Sucharitha

+0

c'est peut-être votre problème de version php, PHP doc dit ** Depuis PHP 5.4, vous pouvez aussi utiliser la syntaxe short array, qui remplace array() par []. ** alors ça permet tout. Vous ne pouvez pas dire ** non autorisé **. – tarikul05

1

vous devez ajouter IN dans vos conditions afin que votre code sera

$bstockBooksTableResearches = $this->BstockIn->BstockResearchs->find('list', [ 
      'conditions' => [ 
       'BstockResearchs.id IN' => $bstockBooksTableResearchIds 
       ] 
      ]) ;