我正在尝试这样做:
$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返回一个空的$事件变量。
如何在查找条件过滤器中使用数组索引而不是数组值?
我知道这很容易,但我真的被困在这里。
感谢。
答案 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。