CakePHP how to get multiple rows by array of ID's

14,836

Solution 1

According to "Complex Find Functions" (third example) this should work:

$this->YourModel->find('all', array(
    'conditions' => array(
        "YourModel.id" => array(1, 2, 3, 4)
    )
));

Solution 2

It looks like in the newer CakePHPs you need to specify 'IN'. This solves aexl question.

$this->YourModel->find('all', [
    'conditions' => [
        "YourModel.id IN" => [1, 2, 3, 4]
    ]
]);
Share:
14,836

Related videos on Youtube

mgPePe
Author by

mgPePe

Updated on June 04, 2022

Comments

  • mgPePe
    mgPePe almost 2 years

    I would like to pull from database multiple rows, according to a list of array of ID's.

    In some other frameworks there seem to be something like "WHERE_IN", but not here.

    Can someone tell me how to do it?

    I would like to know how to do that through the find() or read() (or any other cakephp function) and NOT build a query manually, since I want all data to be escaped and secure.

    thank you

  • Martin
    Martin over 11 years
    to do the same but with id different of array?
  • vstm
    vstm about 11 years
    @Martin: thank you for the question. I'm not sure what you mean - do you want to select records whose IDs are not in the array like the NOT IN-operator? Or do you want to select using another field than id
  • Martin
    Martin about 11 years
    I already solved the doubt, thanks anyway stackoverflow.com/questions/14508682/…
  • mehov
    mehov almost 6 years
    On CakePHP 3 this throws InvalidArgumentException: Cannot convert value to integer