打印数组
array(
'Order' => array(
'id' => '1',
'base_price' => '65',
'min_price' => '95',
)
)
检索数据时是否可以删除密钥('订单')?如果不是如何使用array_shift或在一行中结束并防止出现以下错误?
当我从数组中删除密钥时,我收到此错误Only variables should be passed by reference
。
$orders = array_shift or end ($this->Order->read(null, $id));
debug($orders);
答案 0 :(得分:2)
您只需要来自它的ID,然后以下代码将帮助您
$arrOrderId=Set::extract("/Order/id",$data);
此处$ data是您要从中删除此“订单”键的数组。
执行debug($arrOrderId);
[0]=>1
如果你想要base_price,那么写下面的代码
$arrOrderId=Set::extract("/Order/base_price",$data);
答案 1 :(得分:2)
您可以使用Set
函数来操作数组:
Set::extract($array, 'Order');
将输出:
array(
'id' => '1',
'base_price' => '65',
'min_price' => '95',
)
如果您需要在每个输出上执行此操作,则可以覆盖模型上的afterFind()
方法。
请参阅文档:
http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::extract
http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::classicExtract