0

こんにちは、私はprestrashopに取り組んでいます。私はadminパネルでモジュールを開発しようとしています。モデル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!=サイズガイド – madalinivascu

答えて

0

moduleadmincontrollermodulefrontcontrollerとは少し異なります。

ガイドラインを書きます。

命名
クラス名は、このAdminCONTROLLERNAMEControllerようにする必要があります。
例えば:
class AdminGalleryController

完全な宣言は次のようになります。

 
class AdminGalleryController extends ModuleAdminController 
{ 
    // some stuff 
} 


新しい管理コントローラは、そうでない場合は、データベースに追加する必要がありますDB
を 'コントローラ' を追加します。ディスパッチャはそれを見つけられなかった。通常、このスニペットは、あなたのモジュールのinstall方法で追加する必要があります

 
$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() 

: このコードは、データベース内の新しい管理コントローラを追加します。

あなたの質問に答えて、あなたのクラスはclass_index.phpであるべきではありません、あなたのモデルはあなたのモジュールに配置され、彼によってロードされる必要があります。

 
public function __construct() 
{ 
    /* ... */ 
    require_once(_PS_MODULE_DIR_ . DIRECTORY_SEPARATOR . $this->name . DIRECTORY_SEPARATOR . 'models' . DIRECTORY_SEPARATOR . 'Sizeguide.php'); 
    /* ... */ 
} 
関連する問題