BackOashice控制器中的Prestashop模块RenderView

时间:2018-02-05 23:44:58

标签: php controller prestashop smarty

我正在为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' ......

Thant you

1 个答案:

答案 0 :(得分:2)

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

  1. 您的控制器类名称错误,应为AdminPingdomProbeController且文件名应具有相同的名称AdminPingdomProbeController.php
  2. 您放置模板文件的文件夹不正确,应该在modules/pingdom/views/templates/admin/pingdom_probe/helpers/view/probeAdmin.tpl
  3. 如果您在AdminController之间使用了控制器名称,那么您的模板文件夹需要小写,并将camelcases替换为下划线。

    修改

    您的return方法中也遗漏了renderView

    return parent::renderView();