2

这可能是一个非常简单的问题,但我找不到答案。我想向 OpenCart 中的数组添加一个键/值对,但我似乎无法让它工作。我不确定我添加的内容是否已经是一个数组。

在第 66 行的 catalog/controller/account/history.php 中有一个数组的定义:-

            $this->data['orders'][] = array(
                'order_id'   => $result['order_id'],
                'name'       => $result['firstname'] . ' ' . $result['lastname'],
                'status'     => $result['status'],
                'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
                'products'   => $product_total,
                'total'      => $this->currency->format($result['total'], $result['currency'], $result['value']),
                'href'       => HTTPS_SERVER . 'index.php?route=account/invoice&order_id=' . $result['order_id']
            );

我想使用 VQMod 添加到这个数组中。VQMod 不允许我替换定义中的一行。我不知道为什么,我已经尝试了几个小时,它就是不会。所以我决定在它下面添加一行:-

$this->data['orders']['amountToPay'] = $paymentState['amountToPay'];

这行不通。即使我直接在页面中输入它也不会。我认为我已经搞砸了语法,但除非我不理解数组结构,否则我看不到如何。

任何帮助表示赞赏。

4

2 回答 2

3

您可以使用以下行 -

$this->data['orders'][sizeof($this->data['orders'])-1]['amountToPay'] = $paymentState['amountToPay']; 

因为您的$this->data['orders']也是一个数字索引数组,其中包含关联数组的集合。

我想你的问题会解决的。

于 2011-04-04T18:32:47.843 回答
0

使用 vQmod 很容易做到这一点。基本上你需要搜索

$this->data['orders'][] = array(

并把线放在它后面。这是您需要放入自定义 vQmod XML 文件的内容

<file name="catalog/controller/account/history.php">
    <operation>
        <search position="after"><![CDATA[$this->data['orders'][] = array(]]></search>
        <add><![CDATA['amountToPay' => $paymentState['amountToPay']]]></add>
    </operation>
</file>
于 2011-04-16T15:15:17.587 回答