Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.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 如何在控制器中加载控制器?_Php_Prestashop - Fatal编程技术网

Php 如何在控制器中加载控制器?

Php 如何在控制器中加载控制器?,php,prestashop,Php,Prestashop,如何在控制器预置中加载控件? Opencart支持控制器内的load controller $data['efgh'] = $this->load->controller('abcd/efgh'); 那么支持它的是什么?如果是,那怎么办 我有一个控制器类别渲染自定义tpl public function renderList(){ $tpl = $this->createTemplate('dashboard.tpl'); // Category

如何在控制器预置中加载控件? Opencart支持控制器内的load controller

$data['efgh'] = $this->load->controller('abcd/efgh');
那么支持它的是什么?如果是,那怎么办

我有一个控制器类别渲染自定义tpl

public function renderList(){

    $tpl = $this->createTemplate('dashboard.tpl');

    // Category
    $categories = GenCategory::getCategories();
    $public_categories = GenCategory::getPublicCategories();
    $unpublic_categories = GenCategory::getUnpublicCategories();

    $tpl->assign(array(
        // Category
        'categories' => $categories,
        'public_categories' => $public_categories,
        'unpublic_categories' => $unpublic_categories,
    ));
    return $tpl->fetch();
}
public function renderList(){

    $tpl = $this->createTemplate('menu.tpl');

    $menu = GenMenu::getMenu();

    $tpl->assign(array(
        'menu' => $menu,
    ));
    return $tpl->fetch();
}
和控制器菜单渲染自定义tpl

public function renderList(){

    $tpl = $this->createTemplate('dashboard.tpl');

    // Category
    $categories = GenCategory::getCategories();
    $public_categories = GenCategory::getPublicCategories();
    $unpublic_categories = GenCategory::getUnpublicCategories();

    $tpl->assign(array(
        // Category
        'categories' => $categories,
        'public_categories' => $public_categories,
        'unpublic_categories' => $unpublic_categories,
    ));
    return $tpl->fetch();
}
public function renderList(){

    $tpl = $this->createTemplate('menu.tpl');

    $menu = GenMenu::getMenu();

    $tpl->assign(array(
        'menu' => $menu,
    ));
    return $tpl->fetch();
}

我需要在类别中显示菜单。

我建议您使用initContent()方法,而不是renderList,方法如下:

public function initContent(){
    // Category
    $categories = GenCategory::getCategories();
    $public_categories = GenCategory::getPublicCategories();
    $unpublic_categories = GenCategory::getUnpublicCategories();

    // Menu
    $menu = $this->genMenu();

    $this->context->smarty->assign(array(
        // Category
        'categories' => $categories,
        'public_categories' => $public_categories,
        'unpublic_categories' => $unpublic_categories,
        // Menu
        'menu' => $menu
    ))
    $this->setTemplate(`rightdirectoryofyourtpl`.'dashboard.tpl');
}

public function genMenu(){
    $menu = GenMenu::getMenu();

    $this->context->smarty->assign(array(
        'menu' => $menu,
    ));
    return $this->context->smarty->fetch(`directoryofyourtpl`/menu.tpl)
}

然后在您的tpl中,只需“打印”$menu var

它是您模块的控制器?您需要哪个控制器?PrestaShop只有控制器,你说的控制是什么意思?普雷斯塔索普的哪个版本?嗨,萨科姆。我有一个控制器类别(由我制作)和一个控制器菜单。2控制器呈现自定义tpl。我需要在类别内加载菜单,以显示类别内tpl中的菜单tpl。我使用prestashop 1.6抱歉,但这是一个矛盾。您已经有了一个控制器,此时还可以获取类别控制器中的menu.tpl。PS:您在错误模式下使用了renderList方法:),必须使用init()方法或initContent()方法。是前台还是后台控制器?它是一个模块的控制器?否则你必须使用PrestaShop钩子抱歉,但它是一个后台控制器,我尝试了你的方法,但没有成功:)你能用skype指导我吗?我的skype Vdongson。非常感谢你