cakephp 2以主键作为键检索数据

时间:2013-12-14 22:49:59

标签: cakephp-2.0 cakephp-2.3

我经常使用蛋糕,通常它会以合理的结构返回数据库数据。

但有时我希望将数据的主键作为数组中的键返回。蛋糕坚持一个单独的主键,所以有任何理由为什么蛋糕不能/不会做以下事项:

$this->data = array(2 => array('PK' => 2, 'name' => 'Item 2'))

而不是:

$this->data = array(0 => array('PK' => 2, 'name' => 'Item 2'))

编辑:只是为了澄清,我知道'列表',但这并不好,因为我经常需要的不仅仅是'值'位中的1个元素

3 个答案:

答案 0 :(得分:1)

您可以使用find('list')查询来检索数据,并使用主键作为数组的键。

它会将数据返回为

[1]=>Item1
 [2]=>Item2
 .........
 ........
 ........
 ........
[n]=>ItemN  

Read manual

答案 1 :(得分:1)

你可以使用类似的东西:

$myModels = $this->MyModel->find('all', [
    'fields' => [...],
    'joins' => [...],
    ...
]);

$result = Set::combine($myModels, '{n}.MyModel.id', '{n}.MyModel');

另见:http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::combine

答案 2 :(得分:0)

你可以使用cakephp的find('list')函数来获取主键作为数组的关键元素。这个url可以帮助你正确地完成它。

http://book.cakephp.org/2.0/en/models/retrieving-your-data.html