使用 Set::extract 后未获取关联数据
After using Set::extract not getting associative data
我正在尝试获取 json 没有型号名称的数据,所以我在这里尝试提取如下代码
$transaction = $this->Transaction->find('all', array('conditions'=>array('Transaction.user_id'=>$id)));
$transaction = Set::extract('/Transaction/.', $transaction);
现在的问题是我没有在 json 输出中获取关联数据。这是 json 看起来像
[{"id":"130","transaction_type":"1","user_id":"44","entry_by":"pitocms","added_id":"25","perticuler":"test","Volume":null,"per_unit":null,"credit_money":"1500","debit_money":"0","balance":"-1500","created":"2015-12-27 21:21:11","modified":"2015-12-27 21:21:11"}]
实际上有2个模型交易和用户。
Set::extract()
正是这样做的,它在从源数组中提取选定数据后创建一个新数组。因此,为了获取用户信息,您也必须将其提取出来:
$data = $this->Transaction->find('all',array('conditions'=>array('Transaction.user_id'=>$id)));
$transactions = Set::extract('/Transaction/.', $data);
$users = Set::extract('/User/.', $data);
正如@ndm 在评论中所述,class Set
长期以来一直被弃用,取而代之的是 class Hash
。您可以通过以下方式实现相同的效果:
$data = $this->Transaction->find('all', array('conditions'=>array('Transaction.user_id'=>$id)));
$transactions = Hash::extract($data,'{n}.Transaction');
$users = Hash::extract($data,'{n}.User');
我正在尝试获取 json 没有型号名称的数据,所以我在这里尝试提取如下代码
$transaction = $this->Transaction->find('all', array('conditions'=>array('Transaction.user_id'=>$id)));
$transaction = Set::extract('/Transaction/.', $transaction);
现在的问题是我没有在 json 输出中获取关联数据。这是 json 看起来像
[{"id":"130","transaction_type":"1","user_id":"44","entry_by":"pitocms","added_id":"25","perticuler":"test","Volume":null,"per_unit":null,"credit_money":"1500","debit_money":"0","balance":"-1500","created":"2015-12-27 21:21:11","modified":"2015-12-27 21:21:11"}]
实际上有2个模型交易和用户。
Set::extract()
正是这样做的,它在从源数组中提取选定数据后创建一个新数组。因此,为了获取用户信息,您也必须将其提取出来:
$data = $this->Transaction->find('all',array('conditions'=>array('Transaction.user_id'=>$id)));
$transactions = Set::extract('/Transaction/.', $data);
$users = Set::extract('/User/.', $data);
正如@ndm 在评论中所述,class Set
长期以来一直被弃用,取而代之的是 class Hash
。您可以通过以下方式实现相同的效果:
$data = $this->Transaction->find('all', array('conditions'=>array('Transaction.user_id'=>$id)));
$transactions = Hash::extract($data,'{n}.Transaction');
$users = Hash::extract($data,'{n}.User');