我经常使用蛋糕,通常它会以合理的结构返回数据库数据。
但有时我希望将数据的主键作为数组中的键返回。蛋糕坚持一个单独的主键,所以有任何理由为什么蛋糕不能/不会做以下事项:
$this->data = array(2 => array('PK' => 2, 'name' => 'Item 2'))
而不是:
$this->data = array(0 => array('PK' => 2, 'name' => 'Item 2'))
编辑:只是为了澄清,我知道'列表',但这并不好,因为我经常需要的不仅仅是'值'位中的1个元素
答案 0 :(得分:1)
您可以使用find('list')
查询来检索数据,并使用主键作为数组的键。
它会将数据返回为
[1]=>Item1
[2]=>Item2
.........
........
........
........
[n]=>ItemN
答案 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