0

Привет, я работаю над prestrashop для своего нового, и я пытаюсь разработать модуль в панели администратора. Я создаю модель calss sizeguide, но когда я нажимаю, ошибка,PrestaShop: Как загрузить пользовательский класс (модели) моего модуля

Fatal error: Class 'sizeguide' not found in classes\controller\AdminController.php on line 1614

я действительно пытался это исправить, но я не в состоянии исправить даже класс показывает в class_index.php, как это.

'Sizeguide' => array (
'path' => '', 
'type' => 'class', 
'override' => false, 
), 

'SizeguideCore' => array (
'path' => 'classes/Sizeguide.php', 
'type' => 'class', 
'override' => false, 
), 

, пожалуйста, помогите мне исправить эту проблему заблаговременно.

+0

Здравствуйте, вы можете написать на версию PrestaShop и объявления класса? –

+2

sizeguide! = Sizeguide – madalinivascu

ответ

0

A moduleadmincontroller это немного отличается от modulefrontcontroller.

Я напишу несколько рекомендаций.

Именование
Имя класса должно быть, как это AdminCONTROLLERNAMEController.
Например:
class AdminGalleryController

Полная декларация должна быть:

 
class AdminGalleryController extends ModuleAdminController 
{ 
    // some stuff 
} 


Add 'контроллер' в БД
Новый контроллер администратора должен быть добавлен в базу данных, в противном случае диспетчер его не нашел. Этот фрагмент кода добавить новый контроллер администратора в базе:

 
$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'); 
    /* ... */ 
}