1

ModularExtensionsを使用してモジュールからライブラリをロードする必要があります

このような私の構造

モジュール/

モジュール/カテゴリ/ライブラリ

  • カテゴリ_class.php

モジュール/カテゴリ/コントローラ/

  • カテゴリ.php

    カテゴリコントローラにカテゴリライブラリをロードする必要があります。

誰か杖が私を助けてくれますか?

4

2 に答える 2

7

2つの問題があります。

問題1

あなたの質問によると、あなたのカテゴリモジュールは適切に編成されていません。HMVCの全体的な目的は、コードexを区分化することです。モジュール。あなたの現在の質問を考えると、その構造はどのようにしてモジュールフォルダをコピーして別のアプリに貼り付けることができますか?回答:そうではありません。

以下の例に従ってください

アプリルートからは次のようになります。

/application/
   config
   modules/
    categories/
      views
      controllers/
        categories.php
      libraries/
        categories_class.php
      models
   libraries
   core
   controllers

問題2

ユーザーガイドによると:https ://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

モジュールフォルダ内で参照されるものの前にモジュール名を付ける必要があります。

例えば: $this->load->library('module/library');

またはあなたの場合: $this->load->library('categories/categories_class');

以前にmodulesフォルダー名を除外しようとしましたが、機能しませんでした。

コントローラーは、コントローラー名がモジュール名と一致する場合に、$this->load->module(’module/controller’);または単に コントローラー名を使用して、他のコントローラーのクラス変数としてロードできます。$this->load->module(’module’);

ロードされたモジュールコントローラは、ライブラリのように使用できます。つまり、次のようになります $this->controller->method()が、呼び出し元とは関係なく、独自のモデルとライブラリにアクセスできます。

于 2012-05-11T13:09:05.883 に答える
0

私はこのエラー動作について別の見方をしており、約3時間費やしています。実際、Codeigniterのカスタムライブラリでは常に大文字と小文字を組み合わせて使用​​しています。

Codeigniter HMVCのwiredesigzの場合、ライブラリローダーの動作はCI自体と同じであることに注意してください。実際のクラス名ではなく、常にライブラリクラス名の小文字を使用してください(大文字と小文字の組み合わせかもしれません)。

于 2018-01-19T08:27:02.990 に答える