2017-01-04 3 views
3

Ich entwickle ein einfaches Modul, aber ich kann nicht erfolgreich den Admin-Controller arbeiten.Prestashop - Controller nicht gefunden in admin

Dies ist die Verzeichnisstruktur für mein Modul: enter image description here

Und das ist die AdminPaymentsController.php Datei:

<?php 

class AdminPaymentsController extends ModuleAdminController { 

} 

ich eine Registerkarte auf meine Modulinstallation mit dieser Funktion erstellt:

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(); 
} 

Und rufen Sie es so:

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

Die Registerkarte scheint korrekt installiert werden:

enter image description here

Aber wenn ich es öffnen, zeigen sie eine Fehlermeldung:

enter image description here

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

Warum ist das passiert? Wie kann ich das debuggen?

Antwort

2

Der Name Ihrer Steuerungsdatei sollte AdminPayments.php lauten.

und ändern Sie diese Zeile: $this->module = $this->name; für diese: $tab->module = $this->name;

Viel Glück.

+0

Dieses perfekt funktioniert. Dutzend meiner Module sagt mir;) Fix den anderen Fehler, den ich kommentiere. Viel Glück. – PrestaAlba

1

Es gibt einen Tippfehler in der installTab Funktion. Es sollte sein:

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

Statt

$this->module = $this->name; 
Verwandte Themen