你好我正在为它的新工作prestrashop而我正在尝试在管理面板中开发一个模块我创建了一个模型calss sizeguide但是当我点击添加它显示错误时,
致命错误:第1614行的classes \ controller \ AdminController.php中找不到类'sizeguide'
我确实尝试修复它,但我无法修复它,即使类在class_index.php中显示如下。
'Sizeguide' => array (
'path' => '',
'type' => 'class',
'override' => false,
),
'SizeguideCore' => array (
'path' => 'classes/Sizeguide.php',
'type' => 'class',
'override' => false,
),
请提前帮助我解决此问题。
答案 0 :(得分:0)
moduleadmincontroller
它与modulefrontcontroller
略有不同。
我会写一些指导原则。
命名
班级名称应该是AdminCONTROLLERNAMEController
例如:
class AdminGalleryController
完整的声明应该是:
class AdminGalleryController extends ModuleAdminController { // some stuff }
在数据库中添加“控制器”
必须在数据库中添加新的管理控制器,否则调度程序找不到它。
此代码段在数据库中添加新的管理控制器:
$tab = new Tab(); foreach (Language::getLanguages() as $language) { $tab->name[$language['id_lang']] = $tabName; } $tab->class_name = 'AdminGallery'; $tab->module = /*yourmodulename*/; $tab->id_parent = 0; /* * If you want to add as a child of some admin controller * that is in the backoffice menu you have to use this code: * (int)Tab::getIdFromClassName('AdminCatalog'); * With that code you add your controller as a child of 'AdminCatalog' controller */ $tab->save()
通常应在模块的install
方法中添加此代码段。
在回答您的问题后,您的班级不应该在class_index.php
,您的模型应该放在您的模块中并由他加载。
例如,在您的模块构造函数中,您可以添加以下代码段:
public function __construct() { /* ... */ require_once( _PS_MODULE_DIR_ . DIRECTORY_SEPARATOR . $this->name . DIRECTORY_SEPARATOR . 'models' . DIRECTORY_SEPARATOR . 'Sizeguide.php' ); /* ... */ }