微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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架构的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐