Php Opencart:在订单发票中显示产品属性
我想做的是在OpenCart中显示发票上的产品属性。 我是一个PHP初学者,我能做的事情很少。我知道MVC和OpenCart的基本知识 我需要为订单中的每个产品提取Php Opencart:在订单发票中显示产品属性,php,opencart,Php,Opencart,我想做的是在OpenCart中显示发票上的产品属性。 我是一个PHP初学者,我能做的事情很少。我知道MVC和OpenCart的基本知识 我需要为订单中的每个产品提取$product['attributes],并将其加载到控制器文件中,以便在订单\u invoice.tpl视图文件中使用 到目前为止,我想到的是: 'attributes' => $this->model_catalog_product->getProductAttributes($result['product
$product['attributes]
,并将其加载到控制器文件中,以便在订单\u invoice.tpl
视图文件中使用
到目前为止,我想到的是:
'attributes' => $this->model_catalog_product->getProductAttributes($result['product_id']);
将其添加到订单发票的控制器文件中,但我不确定在何处以及如何添加,而且,如果产品具有多个属性,我需要将其加载到数组中
然后在order\u invoice.tpl
上,我需要按照这句话重复一些内容
<?php foreach ($order['product'] as $product) { ?>
<?php foreach ($product['attributes'] as $attribute) { ?>
<?php echo $product['attribute']; ?>
<?php } ?> // END FOREACH ATTRIBUTE
<?php } ?> // END FOREACH PRODUCT
//结束FOREACH属性
//最终产品
现在我知道这不是“美学上”回应PHP的正确方法,它应该在一组PHP标记之间,但对于像我这样的初学者来说,更容易看到我在做什么,以及是否有语法错误
有人能帮我写下这篇文章,让它充分发挥作用吗?你做得很好,思维也很好 用于加载属性的行可以放在此处的某个位置(在控制器中,方法
invoice()
):
这已经加载了与产品链接的所有属性的数组。现在将这些属性分配给下面几行的产品:
$product_data[] = array(
'name' => $product['name'],
'model' => $product['model'],
'option' => $option_data,
'quantity' => $product['quantity'],
'price' => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']),
'total' => $this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value'])
'attributes' => $attributes
);
控制器应该就这些了,现在只需使用您在问题中询问的模板代码。在每一行上使用
并不是不美观的,而是推荐的PHP输出方式。当处理模板时,将代码视为HTML代码,HTML必须具有优先权。然后,所有对HTML代码的PHP修改都应该放在它的单独一行中,以保持更好的准备状态。例外情况可能是变量的回显,例如
<div class="some-class"><?php echo $myVariable ?></div>
但我个人建议不惜一切代价避免在模板中使用switch
语句,因为您甚至可以从上面的示例中看到,它会造成HTML和PHP标记的混乱,可读性较差。。。改用if-elseif
语句
<div class="some-class"><?php echo $myVariable ?></div>
<ul>
<?php foreach ($products as $product) { ?>
<li><?php echo $product['name'] ?></li>
<?php } ?>
</ul>
<div>
<?php switch ($var) {
case true: ?>
<?php echo 'THIS IS GONNA HAPPEN.' ?>
<?php break ?>
<?php } ?>