cakephp找到所有主列为关键

时间:2015-03-13 11:21:08

标签: cakephp cakephp-2.3

当我解雇时:

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

我得到一个包含模型数据的数组:

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

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

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

现在是否有可能而不是0,1,2来获取每个数据的密钥?

例如:

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个字段(一个键和一个值)。

2 个答案:

答案 0 :(得分:0)

你可以构建它也许这段代码可以做到:

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

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

答案 1 :(得分:0)

它仍然是一个后寻找操作,但看看Set :: combine(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] =>
    )
*/

(或多或少只是文档示例)可能适用于您的情况。