如何使用cake php将蛋糕php查找查询结果数组键更改为id值?
$videos = $this->Video->find('all');
print_r($videos);
数组将是
Array
(
[0] => Array
(
[Video] => Array
(
[id] => 6
)
)
[1] => Array
(
[Video] => Array
(
[id] => 8
)
)
)
如何更改ID值如下所示的数组键
Array
(
[6] => Array
(
[Video] => Array
(
[id] => 6
)
)
[8] => Array
(
[Video] => Array
(
[id] => 8
)
)
)
蛋糕本身有可能吗?
答案 0 :(得分:8)
如果您确实需要采用此格式的数据,则可以使用afterFind
来设置ID,也可以使用CakePHP的Hash
/ Set
类。
试试这个(因为CakePHP 2.2)
$videos = $this->Video->find('all');
$videos = Hash::combine($videos, '{n}.Video.id', '{n}');
debug($videos);
或者对于早于2.2的CakePHP
$videos = $this->Video->find('all');
$videos = Set::combine($videos, '{n}.Video.id', '{n}');
debug($videos);
有关详细信息,请参阅http://book.cakephp.org/2.0/en/core-utility-libraries/hash.html
如果您可能告诉我们为什么您需要采用这种格式的数据,我们也可以建议更好的方法,因为不会以这种方式更改数据。
答案 1 :(得分:1)
不,不是。您可以在afterFind()中更改结果,查看book.cakephp.org,但我只是简单地使用数据。我认为没有任何理由增加这种额外的开销和复杂性,因为无论如何都可以使用id。
答案 2 :(得分:1)
在CakePHP 2.2中你可以使用
$videos = $this->Video->find('list');
pr($videos);
这将打印id为key的每个值。
我不知道你是否可以在1.3中使用它,但你可以试试......