Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php backOffice控制器中的Prestashop模块RenderView_Php_Controller_Prestashop_Smarty - Fatal编程技术网

Php backOffice控制器中的Prestashop模块RenderView

Php backOffice控制器中的Prestashop模块RenderView,php,controller,prestashop,smarty,Php,Controller,Prestashop,Smarty,我正在为Prestashop开发一个模块,就在我需要一个新控制器的时候 我创建了它,没问题,但现在我想在其中显示一些信息,问题就出现了 我有一个非常基本的代码: class PingdomProbeAdminController extends ModuleAdminController { public $name = "ProbeAdmin"; public function __construct() { $this->bootstrap = true;

我正在为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仍然抱怨
无法加载模板文件“helpers/view/probeAdmin.tpl”


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

  • 您的控制器类名称错误,它应该是
    AdminpingDomProbeControl
    ,并且文件名应该具有相同的名称
    AdminpingDomProbeControl.php
  • 放置模板文件的文件夹不正确,它应该位于
    modules/pingdom/views/templates/admin/pingdom\u probe/helpers/view/probeAdmin.tpl
  • 如果在
    Admin
    controller
    之间有camelcase控制器名称,则模板文件夹需要小写,camelcase替换为下划线

    编辑:

    您的
    renderView
    方法中也缺少
    return

    return parent::renderView();
    

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

  • 您的控制器类名称错误,它应该是
    AdminpingDomProbeControl
    ,并且文件名应该具有相同的名称
    AdminpingDomProbeControl.php
  • 放置模板文件的文件夹不正确,它应该位于
    modules/pingdom/views/templates/admin/pingdom\u probe/helpers/view/probeAdmin.tpl
  • 如果在
    Admin
    controller
    之间有camelcase控制器名称,则模板文件夹需要小写,camelcase替换为下划线

    编辑:

    您的
    renderView
    方法中也缺少
    return

    return parent::renderView();
    

    谢谢,有没有文档可以让我找到创建BO模块控制器的详细说明?我确实做了修改,但唯一的结果是没有找到新页面。。。另外,我还模仿了我发现安装的另一个模块的控制器,名为
    游戏化
    ,这一个运行良好…@BorisLeMéec你重新安装了你的模块并在tab安装中更正了控制器名称了吗?还没有,但我想看看一个官方的地方,在那里我可以找到这些信息。。。我非常不喜欢做不知道为什么的事情:/@BorisLeMéec那么你要找很长时间,因为官方文件很差。另外,我不知道你是如何模仿
    游戏化
    控制器的,因为它遵循了我在答案中写的命名约定,所以我已经完成了你所有的修改。看起来很管用,但是。我可以加载控制器,如果我更改
    $this->base\u tpl\u view='probe\u admin.tpl'probe\u admin.tpl
    中没有显示任何内容。谢谢,有没有文档可以让我找到创建BO模块控制器的详细说明?我确实做了修改,但唯一的结果是没有找到新页面。。。另外,我还模仿了我发现安装的另一个模块的控制器,名为
    游戏化
    ,这一个运行良好…@BorisLeMéec你重新安装了你的模块并在tab安装中更正了控制器名称了吗?还没有,但我想看看一个官方的地方,在那里我可以找到这些信息。。。我非常不喜欢做不知道为什么的事情:/@BorisLeMéec那么你要找很长时间,因为官方文件很差。另外,我不知道你是如何模仿
    游戏化
    控制器的,因为它遵循了我在答案中写的命名约定,所以我已经完成了你所有的修改。看起来很管用,但是。我可以加载控制器,如果我更改
    $this->base\u tpl\u view='probe\u admin.tpl'probe\u admin.tpl
    中没有显示任何内容。