2016-09-15 45 views
0

我希望两个虚拟字段在提取记录中合并。但是我只为一个虚拟字段完成了另一个虚拟字段,另一个虚拟字段返回null。如何在cakephp中获取多个虚拟现场数据3.2

我很混淆如何返回两个虚拟现场数据。

下面是代码 在模型/实体/ Order.php

protected $_virtual = ['due','paid']; 


    protected function _getDue() { 
     return $this->_properties['collection']['due_amount']; 
     return $this->_properties['collection']['total_sale_amount']-$this->_properties['collection']['due_amount']; 
    } 

下面是输出

[ 
    { 
      "id": 20, 
      "collection": { 
      "id": 150, 
      "order_id": 20, 
      "total_sale_amount": 110, 
      "net_paid": 10, 
      "due_amount": 70, 
      "is_paid": 1, 
      "payment_mode": "DD", 
      "reference_num": "", 
      "created": "2016-09-09T00:00:00+0000" 
     }, 
     "due": 70, 
     "paid": null 
    } 
] 

这里付出来了空,但应该来110 -70 = 40。

如果我保留任何一个,而不是2,我得到我应该需要的东西。

请给我建议。 任何建议将不胜感激。 :)

+1

您不能在单个函数中写入两个返回值。第二个陈述永远不会执行。 –

+0

@Ravi Hirani是的,我知道,它不会工作。 但是有什么办法,这样我就可以一次得到两个结果。 – sradha

+1

使另一个函数,并写入第二条语句。因为你正在使用返回值。或者在一个函数中,返回一个数组,并将bot值放入一个数组中。 –

回答

1

在评论中提到,您不能在单个函数中编写两个返回值。您应该使用数组。将两个值放在数组中并返回一个数组。

protected function _getDue() { 
    $data = []; 
    $data['due'] = $this->_properties['collection']['due_amount']; 
    $data['paid'] = $this->_properties['collection']['total_sale_amount']-$this->_properties['collection']['due_amount']; 
    return $data; 
} 
+0

是的,我明白了。 非常感谢。 这是我在这里问的愚蠢的东西。 – sradha

+0

:)再次感谢您。 – sradha

+1

不客气:-)乐于帮忙。 –