backOffice 控制器中的 Prestashop 模块 RenderView

Prestashop module RenderView in backOffice Controller

我正在为 Prestashop 开发一个模块,这时我需要一个新的控制器。

我创建了它,没问题,但是现在我想在其中显示一些信息,问题就出现了。

我有这个非常基本的代码:

class PingdomProbeAdminController extends ModuleAdminController 
{
  public $name = "ProbeAdmin";

  public function __construct()
  {
    $this->bootstrap = true;
    $this->display = 'view';
    $this->meta_title = $this->l('Create your new Probe');
    $this->module = 'pingdom';
    parent::__construct();
    if (!$this->module->active)
        Tools::redirectAdmin($this->context->link->getAdminLink('AdminHome'));
  }

  public function renderView()
  {
    $this->tpl_view_vars = array(

    );
    $this->base_tpl_view = 'probeAdmin.tpl';
    parent::renderView();
  }
}

我显然 probeAdmin.tpl 位于 modules/pingdom/views/templates/admin/pingdom/helpers/view/probeAdmin.tpl

但 Smarty 仍在抱怨 Unable to load template file 'helpers/view/probeAdmin.tpl'...

谢谢你

您没有指定版本,但无论如何:

  1. 你的控制器 class 名称错误,应该是 AdminPingdomProbeController 并且文件名应该具有相同的名称 AdminPingdomProbeController.php
  2. 您放置模板文件的文件夹不正确,应该在 modules/pingdom/views/templates/admin/pingdom_probe/helpers/view/probeAdmin.tpl.

如果您在 AdminController 之间使用了驼峰式控制器名称,您的模板文件夹需要小写并且用下划线替换驼峰式。

编辑:

您的 renderView 方法中也缺少 return

return parent::renderView();