2017-01-04 2 views
3

Я разрабатываю простой модуль, но я не могу успешно заставить контроллер администратора работать.Prestashop - Контроллер не найден в admin

Это структура каталогов для моего модуля: enter image description here

И это файл AdminPaymentsController.php:

<?php 

class AdminPaymentsController extends ModuleAdminController { 

} 

Я создал закладку на моей установке модуля с помощью этой функции:

public function installTab($parent, $class_name, $name) { 
    $tab = new Tab(); 
    $tab->id_parent = (int)Tab::getIdFromClassName($parent); 
    $tab->name = array(); 

    foreach (Language::getLanguages(true) as $lang) { 
     $tab->name[$lang['id_lang']] = $name; 
    } 

    $tab->class_name = $class_name; 
    $this->module = $this->name; 
    $tab->active = 1; 

    return $tab->add(); 
} 

И называя это следующим образом:

if (!$this->installTab('AdminCatalog', 'AdminPayments', 'Payments Management')) return false; 

Вкладка, кажется, установлен правильно:

enter image description here

Но когда я открываю его, он показывает сообщение об ошибке:

enter image description here

http://dev.prestashop.com/admin123asdf/index.php?controller=AdminPayments&token=52dbfa9a1a6c3935fd3cbb1276bcbedb

Почему это происходит? Как я могу отладить это?

ответ

2

Ваше имя файла контроллера должно быть AdminPayments.php.

И изменить эту строку: $this->module = $this->name; для этого: $tab->module = $this->name;

удачи.

+0

Это отлично работает. Дюжина моих модулей говорит мне;) Исправлена ​​другая ошибка, которую я комментирую. Удачи. – PrestaAlba

1

Опечатка в функции installTab. Оно должно быть:

$tab->module = $this->name; 

Вместо

$this->module = $this->name; 
Смежные вопросы