【问题标题】:How to call a controller from a view in opencart?如何从opencart中的视图调用控制器?
【发布时间】:2015-11-18 13:58:16
【问题描述】:

我是 opencart 的新手。我想创建一个自定义主题和一些自定义控制器和模型。我找不到任何与此相关的教程,但我尝试沿着控制器创建一个视图。当我从主页或标题视图页面调用该视图时,例如$header(在主文件中)和$search(在头文件中),然后它显示未定义的变量。

我的代码如下所示。它在控制器中(路径是catalog\controller\common\test.php)。

<?php
class ControllerCommonTest extends Controller{
    public function index() {
 if(file_exists(DIR_TEMPLATE.this->config->get('config_template').'/template/test/test.tpl')) {

        $this->response->setOutput($this->render());
    } else {
        return $this->load->view('default/template/common/header.tpl');
    }
    }
}
?>

我的观点是\view\theme\MyTheme\template\common\test.tpl

<?php
echo "Test file";
?>

在我的主文件中,我像下面这样调用我的控制器...

<?php
echo $header;
echo $test;
echo $footer;
?>

当我运行它时,它显示以下错误:

注意:未定义变量:第 4 行 C:\xampp\htdocs\opencart\catalog\view\theme\MyCustome\template\common\home.tpl 中的测试

所以,请提供任何教程链接和任何在 opencart 中开发自定义模块的示例。

提前致谢。

【问题讨论】:

  • 检查 $header 变量是如何在控制器中定义的。同样定义你的 $test 变量。在 opencart 版本 1.x 之前,模板变量在控制器中定义,如 $this-&gt;data['variable_name'] 和从 2.x 开始的 $data['variable_name']

标签: php opencart


【解决方案1】:

要在主页上显示测试模块 tpl 即test.tpl,您在主页控制器上有负载测试控制器。请在catalog/controller/common/home.php中添加以下代码

添加此代码

$data['test'] = $this->load->controller('common/test');

之后

$data['header'] = $this->load->controller('common/header');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    相关资源
    最近更新 更多