2014-01-28 69 views
0

我試圖做到這一點:CakePHP的使用ID的從發現(「清單」)陣列,而不是顯示值

$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)); 

的$客戶找到回報:

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

而我需要在$ conditions條件下$ customers數組應該是客戶ID列表以找到我需要的,而是使用顯示值(例如「Cust name n」),以便find返回一個空的$ events變量。

如何在查找條件過濾器中使用數組索引而不是數組值?

我知道這可能很容易,但我真的被困在這裏。

謝謝。

回答

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。