1

コアクラスCI_Router(より正確にはMY_Router)内で使用したいヘルパーがあります。このカスタムルーターでは、URLにハイフンを挿入できるようにするために、元のコードにいくつかの変更を加えました。いつものようにautoload.phpファイルでヘルパーを定義しましたが、ビューまたはコントローラー以外のクラス内でヘルパー関数を呼び出すことができないようです。

これを処理する方法について何かアイデアはありますか?私の最初のアプローチはヘルパーを使用することだったので、好きな場所で再利用できます。

TYVM。

4

2 に答える 2

1

ヘルパーはコアが終了するまでインスタンス化されないため、機能しません。

次のいずれかを行う必要があります。

  1. クラス内の関数を複製するMY_Router、または、
  2. 標準のコントローラーまたはビューで使用しているのと同じ機能をルーターで使用している理由を再考してください。

オプション1の方が明らかに簡単ですが、OCDの程度によっては好ましくない場合があります。

于 2012-12-03T18:25:15.900 に答える
0

メインCIオブジェクトのインスタンスを取得して変数に設定し、それを使用してヘルパーをロードしてみてください。元:

$ci =& get_instance();
$ci->load->helper('date');

私はそれが他の分野で機能することを知っていますが、どのルータークラスについても100%確実ではありません。

于 2013-11-26T19:17:41.450 に答える