2015-03-13 81 views
-1

當我火了這一點:CakePHP的找到所有主列鍵

$this->model->find('all',array()); 

我得到了模型的數據數組:

Array 
(
[0] => Array 
    (
     // some data 
    ) 

[1] => Array 
    (
     // some data 
    ) 

[2] => Array 
    (
     // some data 
    ) 
... 
) 

現在是有可能的,而不是0,1, 2獲取每個數據的密鑰ID?

例如:

Array 
(
    [365] => Array 
    (
     [model] => Array 
     (
      [id] => 365  
      // some data 
     ) 
    ) 
    [442] => Array 
    (
     [model] => Array 
     (
      [id] => 442  
      // some data 
     ) 
    ) 
    [1000] => Array 
    (
     [model] => Array 
     (
      [id] => 1000  
      // some data 
     ) 
    ) 
... 
) 

我知道find('list')可以做這樣的事情,但最多隻有2場(一個鍵和一個值)。

+0

_是否有可能將id作爲每個數據的關鍵字?_否 - 當您使用[find method]時(http://book.cakephp.org/2.0/en/models/retrieving-your -data.html)。 – AgRizzo 2015-03-13 12:40:03

+0

我總是欣賞downvotes沒有任何評論任何。爲什麼告訴人們他們做錯了什麼,所以他們不會再這樣做...... – MrSmith 2015-03-13 15:33:20

回答

0

你可以建立它也許這個代碼可以做到這一點:

$final_array = array(); 
foreach($returned_array as $k => $v){ 

    $final_array[$v['id']] = $v; 
} 
print_r($final_array); 
+0

我知道我可以建立它。但我想要的是完全構建陣列。 – MrSmith 2015-03-13 12:22:39

+0

好的,蛋糕我不這麼認爲 – 2015-03-13 12:27:45

0

它仍然是一個後發現操作,但看看套裝::結合(http://book.cakephp.org/2.0/en/core-utility-libraries/set.html)作爲一個更優雅的解決方案。例如:

$newArray = Set::combine($yourArray, '{n}.Model.id'); 
/* $newArray now looks like: 
    Array 
    (
     [365] => 
     [442] => 
     [1000] => 
    ) 
*/ 

(或多或少只是文檔示例)可能適用於您的情況。