【问题标题】:How to get multiple virtual field data in cakephp 3.2cakephp 3.2 中如何获取多个虚拟字段数据
【发布时间】:2016-09-15 05:06:00
【问题描述】:

我希望在提取记录中合并两个虚拟字段。但我只为一个虚拟字段完成了它,另一个返回 null。

我很困惑如何返回两个虚拟字段数据。其中一个很好。

下面是代码 在model/Entity/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
    }
]

这里的payed是null,但应该是110-70 = 40。

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

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

【问题讨论】:

  • 你不能在一个函数中写两个返回值。第二条语句永远不会执行。
  • @Ravi Hirani 是的,我知道,这行不通。但是有什么办法可以一次得到两个结果。
  • 创建另一个函数并将第二条语句写入其中。因为您正在使用返回值。或者在单个函数中,返回一个数组并将机器人值放入一个数组中。

标签: php cakephp-3.x cakephp-3.2


【解决方案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;
 }

【讨论】:

  • 是的,我明白了。十分感谢 。这是我在这里问的愚蠢的事情。
  • :) 再次感谢您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多