Cakephp使用find('list')数组中的id而不是显示值

时间:2014-01-28 11:27:58

标签: find cakephp-2.3

我正在尝试这样做:

$customers = $this->Customer->find('list', array('conditions' => //some code));
$conditions = array('Event.customer_id' => $customers //here's the problem);
$this->Event->find('all', ('conditions' => $conditions));

$ customers找到回报:

 array(
       [id1] => "Cust name 1",
       [id2] => "Cust name 2",
       ...
       [idn] => "Cust name n")

虽然我需要在$条件中$ customers数组应该是客户ID的列表以找到我需要的东西,而是使用显示值(例如“Cust name n”),所以find返回一个空的$事件变量。

如何在查找条件过滤器中使用数组索引而不是数组值?

我知道这很容易,但我真的被困在这里。

感谢。

1 个答案:

答案 0 :(得分:1)

您只需要像这样更改代码:

$customers = $this->Customer->find('list', array('conditions' => //filter));
$conditions = array('Event.customer_id' => array_keys( $customers) );
$this->Event->find('all', ('conditions' => $conditions));

请注意,您传递array_keys( $customers )而不是简单地传递数组。这将以CakePHP可以使用的格式提取您需要的ID。