php – Opencart:从另一个控制器调用方法

我需要在checkout / confirm.tpl文件调用我在controller / product.PHP中创建的自定义函数

什么是最好的方法呢?

我试过这个,但不起作用:

$productController = $this->load->model('product/product');
$productController->customFunction();

解决方法:

> MVC

>在MVC架构中,模板仅用于呈现/显示数据;它不应该(*)调用控制器/模型函数,也不应该像我在许多第三方模块中看到的那样执行SQL查询(甚至在SO的答案中).

> $productController = $this-> load-> model(‘product / product’);

>漂亮的眼睛必须发现你正在尝试将模型加载到由控制器命名的变量中,并且你也试图以这种方式使用它.那么,为了你的目的,必须在类Loader中有一个方法controller() – 这不是(幸运的)

>应该如何做?

>确保有一种方法可以从模板中访问或调用控制器功能.在MVC中,由路由调用的可调用函数称为操作.使用这句话我现在可以说你可以通过访问某个URL来调用一个动作(控制器功能).

因此,假设您的控制器是CatalogProductController,您要调用方法是custom() – 在这种情况下访问此URL

http://yourstore.com/index.PHP?route=catalog/product/custom

您将确保调用/访问CatalogProductController的custom()方法.

您可以通过多种方式访问​​此类URL – 作为cURL请求,作为链接的href或通过AJAX请求来命名.在PHP范围内,即使file_get_contents()或类似的方法也可以.

(*)我不应该意味着(不幸的是)它可能在OpenCart中,但这种滥用是针对MVC架构的.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...