0

我正在尝试获取没有模型名称的 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个模型交易和用户。

4

1 回答 1

1

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 在评论中所说, classSet长期以来一直被弃用,取而代之的是 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');
于 2016-01-02T10:45:41.990 回答