問題タブ [codeigniter-hmvc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
484 参照

codeigniter - ライブサーバーで HMVC コールバック関数のエラーを Codeigniter する方法は?

Aおはようございます。

codeigniter3 hmvc で Web サイトを構築しました。すべてのルートとコールバック関数は私の localhost xampp で完全に機能し、ライブ サーバーをホストしているゴッドデイ シェアにプロジェクトをアップロードした後、コールバック関数の問題に直面しており、以下のエラーがログ ファイルに表示されます。私のユーザーログ機能もこのエラーを表示します:-

フィールド名 Password に対応するエラー メッセージにアクセスできません。(verifylogin)

codeigniter のログ フォルダー内のエラー ログ

これらは私の application/config/config.php です

以下は私のapplication/config/routes.php設定です

これは、フロントエンド モジュールの Home.php コントローラーです。

これは私のフォーム検証ライブラリ ファイルです

これは私のUsers Controllerファイルです

0 投票する
1 に答える
817 参照

php - HMVC Codeigniter のモジュールのサブフォルダーにアクセスする

モジュールにアップロード用のサブフォルダーがあります。codeigniter に HMVC 拡張機能を使用しています。私のアプリケーションの構造は次のとおりです:
modules
--mymodule
----/controllers
----/models
----/views
----/uploads
-------/images

URL を使用して画像フォルダーにアクセスするにはどうすればよいですか?

0 投票する
0 に答える
346 参照

php - Codeigniter-HMVC フレームワークは、同じレベルのコントローラーの名前と同じ名前を持つコントローラーの下のディレクトリ名を受け入れません

Codeigniter-HMVC フレームワークは、同じレベルのコントローラーの名前と同じ名前を持つコントローラーの下のディレクトリ名を受け入れません。

URL:でメソッド名を[my Domain]/my_module/level1_controller/level2_controller 探しているため、404 エラーが返されます。level2_controllerlevel1_controller.php

これは HMVC の単なる制限ですか、それとも間違った方法でやっていますか? 同じレベルのコントローラーの名前と同じディレクトリ名をHMVCに理解させる方法はありますか?

0 投票する
0 に答える
441 参照

php - CodeIgniter HMVC 動的ロール アクセスの問題

CodeIgniter 3.x、HMVC 最新、ion Auth を認証に使用し、アプリケーションの役割をベースにしています。
アプリケーションは動的にロール ベースです。つまり、データベースがロールを処理します ► ユーザー ► modules-controlers-CRUD_rights
1 つのモジュール関数が 2 番目のモジュール関数を呼び出します。問題は、最初のモジュールの権限が読み取りで、2 番目のモジュールに特定のユーザーへの読み取り権限が与えられていない場合です。この種のリクエストを処理する方法がわかりません。

例えば。

Role1 には ClientsModule への読み取りアクセス権がありません。
さて、コーディングでは、次のコードを介してクライアントにアクセスしています。

ClientsModule/ClientController コンストラクターのコードが続いているため、404 を取得しています。

どこに何かが欠けているのかわかりません。HMVC を正しく使用するための私の知識、または OOPS を使用するための知識が不足しています。HMVC や CI を経験したことがある人は助けてください。

0 投票する
3 に答える
1144 参照

php - Codeigniter 3.x - 動的データとともに $data をすべてのビューにプリロードする

質問:

好奇心から、Codeigniter が特定のデータを常にビューにロードする方法を提供するかどうか疑問に思っています。

例:ビューをロードするたびにそのデータをロードするために呼び出すのではなく、すべてのページのビューの内部にアクセスできると便利なサイト情報を含む構成ファイルがあります。常にそれを含めることができますか?



オプション1:

ある種の MY_Loader 拡張機能 - 既に MY_Controller があるため、MY_Loader クラスを実行して MY_Controller に CI_Loader の代わりにそれを呼び出させることはそれほど難しくありません。ただし、これが可能かどうかはわかりません。

オプション 2:

システムファイルを編集すればこれが可能であることは知っていますが、私はそれをしないことを本当に望んでいます. そのため、CI を更新するときに変更を追跡するのが難しくなります。

オプション 3:

???


考え?

明確化のために編集: これは特に、データをビューにロードし、ビューではなくモデルとコントローラーCI_Controllerからのみアクセスできるメンバー変数を拡張および設定するためのものです。

0 投票する
1 に答える
710 参照

codeigniter - セッションが期限切れになった場合にリダイレクトされたときにカスタム エラー メッセージが表示されない

Codeigniter バージョン 3.0.3 と HMVCを使用してログイン コントローラーに取り組んでいます。

ユーザーが管理ダッシュボードにログオンすると、セッション トークンが設定され、URL にリダイレクトされます。

セッションが期限切れになると、管理ページにリダイレクトされ、ログイン ページにメッセージが表示されます。フラッシュ データを使用する代わりに$data 変数メッセージを設定しようとしています

何らかの理由で、セッションが期限切れになり、管理者にリダイレクトされたときに、警告メッセージがアクティブになりません。

質問:管理者ログインにリダイレクトされてセッションが期限切れになると、カスタム データ メッセージが表示されないのはなぜですか?

また、ログインチェック機能を実行するために codeigniter フック関数を使用します

コントローラ

ファイル名: Login.php

ログイン ビュー $error_warning

0 投票する
1 に答える
215 参照

codeigniter - Codeigniter 3 ログイン チェック機能が正しいフラッシュデータ メッセージを表示しない

ログインチェック機能を作成しています。しかし、2 つのフラッシュ データ メッセージが正しく設定されていません。

  1. ユーザーがログオンした後、セッションの有効期限が切れた場合、このフラッシュ データ メッセージを設定する必要があります。 セッション トークンの有効期限が切れました!
  2. また、ユーザーがログオンしておらず、ログオンせずにコントローラーにアクセスしようとすると、この flashdata メッセージを設定する必要があります。このサイトにアクセスするにはログインが必要です!

何らかの理由で、常に 2 番目の flashdata メッセージが表示されます。

質問:どうすれば 2 つの flashdata メッセージを適切に使用できますか?

コントローラー: Login.php 関数: check

すべてのコントローラーに追加する必要がないように、 codeigniter フックを介して関数を実行します。

0 投票する
1 に答える
313 参照

php - HMVC のインストール中にエラーが発生しました。削除するにはどうすればよいですか?

インストールのためにこのリンクをたどって、codeigniter HMVC構造を初めて使用します。 https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/src

すべての手順を実行しましたが、手順 12 に到達するとエラーが表示されます。

手順:

  1. CIのクリーンインストールから始める
  2. インストールに合わせて $config['base_url'] を正しく設定します
  3. URL /index.php/welcome => にアクセスすると、Welcome to CodeIgniter が表示されます
  4. Modular Extensions third_party ファイルを application/ third_party ディレクトリにドロップします。
  5. Modular Extensions コア ファイルを application/core にドロップします。独自のコントローラー拡張機能を作成する場合を除き、MY_Controller.php ファイルは必要ありません。
  6. URL /index.php/welcome => にアクセスすると、Welcome to CodeIgniter が表示されます
  7. モジュール ディレクトリ構造 application/modules/welcome/controllers を作成します。
  8. コントローラー application/controllers/welcome.php を application/modules/welcome/controllers/welcome.php に移動します。
  9. URL /index.php/welcome => にアクセスすると、Welcome to CodeIgniter が表示されます
  10. ディレクトリ application/modules/welcome/views を作成します
  11. ビュー application/views/welcome_message.php を application/modules/welcome/views/welcome_message.php に移動します
  12. URL /index.php/welcome => にアクセスすると、Welcome to CodeIgniter が表示されます

エラー:

ビュー フォルダのパスが正しく設定されていないようです。次のファイルを開いて、これを修正してください: index.php

解決方法を教えてください。route/config.index などに変更が必要ですか? 各モジュールにも構成フォルダーをコピーして貼り付ける必要がありますか? 現在、それらはすべてデフォルトです。私の CI バージョンは最新の 3.0.3 で、設定では index.php ではなく index_page が空です

また、空の代わりに index.php を追加してチェックします。もう1つ、オンラインで検索し、View、Controllerなどのフォルダー名を大文字にしてみましたが、何も起こりませんでした。

0 投票する
1 に答える
963 参照

php - Codeigniter セッション ライブラリ - HMVC

CI 3.0.3 と最新のHMVC Extensionでコーディング中に問題が発生しました。いくつかのライブラリ、ヘルパーなどをオートロードしています。セッションライブラリも。今、私はいくつかのコントローラを持っていますが、1 つを除いてすべて正常に動作しています。

そのコントローラーでは、次のコードを使用します。

この静的関数を使用しているときにエラーが発生しました:

ログには、Session クラスが初期化されたことが示されています。

このエラーが発生した理由はありますか?

編集: - - - - - - - - - - - - - - - - - - - - - - - - -----------------------

以下のような愚かな答えを防ぐために...

CI では、リクエストごとに複数のコントローラーを呼び出すことはできません。したがって、HMVC を実現するには、コントローラーをシミュレートする必要があります。ライブラリ、またはこの「Modular Extensions HMVC」コントリビューションを使用して実行できます。

ライブラリと「モジュラー HMVC」HMVC クラスの使用の違いは次のとおりです。 1. HMVC クラス内で CI インスタンスを取得して使用する必要がない 2. HMVC クラスは、ライブラリ ディレクトリではなく、モジュール ディレクトリに格納されます。

編集 2: ----------------------------------------------- ----------------------

さらに質問がある場合:

  • はい、セッション ライブラリが問題です
  • はい、この HMVC プラグインと組み合わせた場合のみ
  • はい、静的メソッドを使用する場合のみmodules::run();
  • いいえ、コントローラーでコントローラーをシミュレートするには、このメソッドが必要です