在订单页面上显示添加到 opencart 数据库的额外字段

displaying an extra field added to the database in opencart on the order page

我在 Opencart 数据库中的 oc_order table 添加了一个额外的字段。

但是,当我尝试检查它是否存在或显示该字段中的数据时,我什么也没看到。

我已使用以下内容更新 catalogue/view/theme/account/order_info.twig 文件以测试显示新字段和使用 if 语句...

{{ newfield }} {% if newfield == true %}
                WORKS
                {% else %}
                NOT WORKING
            {% endif %}

我在数据库中插入了一个“1”,但我总是显示 'NOT WORKING'。

非常感谢任何帮助。

这不是真的,对吧? ;)

您应该使用 {% if newfield %},因为它不是空值,或者您可以使用 defined 函数。

Twig 比较的工作方式与 PHP 版本略有不同。你也可以用 {{dump(newfield) }} 检查你在这里得到了什么,这样你就可以让你的条件更具体,但我想上面的简单形式就足够了,因为它没有标志。

顺便说一下,{{ newfield }} 的输出是什么?如果为空,说明你可能没有正确传递给模板文件。

要从数据库中检索数据并将其显示在您的模板上,您应该 首先,在相应的控制器文件中从 DB

中检索数据
$query = "SELECT newfield FROM " . DB_PREFIX . "table_name ";

你应该在同一个控制器文件中声明它

if ($query->rows) {
    $data['newfield'] = $query->row['newfield'];
} else {
 $data['newfield'] = '';
}

现在您可以在模板中检索它

{% if newfield %}
  WORKS {{ newfield }}
{% else %}
  NOT WORKING
{% endif %}