0

我想根据从以下位置调用的 ID 列表选择 MySQL 记录:

$ids = $this->params['url']['ids']

其中 ids 是一个或多个 Id,以逗号分隔。我知道我可以使用 explode 来获取数组中的 ID:

$id = explode(",", $ids);

我知道按 ID 调用的基本代码是:

$row = $this->Model->find('all',
       array(
              'conditions' => array(
                   'id' => $id['0'],
              ),
              'fields' => array(
                   'id',
                   'name'
              )
       ));

我的问题是如何在不知道我之前拥有的 ID 数量的情况下选择使用多个 ID?即 1 个 ID,或 3 个 ID,或 5 个等。

4

2 回答 2

1

似乎这应该与'id' => $id. 也就是说,传入一个 ID 数组来搜索以使用IN子句。

于 2013-10-21T20:53:53.520 回答
0

将 $id 作为数组传递,CakePHP 自动检测数组是否在条件中给出,它会自动将“=”更改为“IN”mysql。

$row = $this->Model->find('all',
       array(
              'conditions' => array(
                   'id' => $id,
              ),
              'fields' => array(
                   'id',
                   'name'
              )
       ));
于 2013-10-22T13:42:36.290 回答