2011-07-07 14 views
1

フックが実際に何かをするのに問題があります。ビューが毎回レンダリングされる前に、いくつかのセッション変数を設定したいと思います。私はまた、設定ファイル内のフックを有効にしているCodeIgniter:hooksrでセッション変数やコントローラ変数を設定する方法は?

$hook['post_controller_constructor'] = array(
    'class' => 'Permissions', 
    'function' => 'can_view', 
    'filename' => 'pre_hooks.php', 
    'filepath' => 'hooks'); 

:私は私のconfig/hooks.phpでこれを入れている

$config['enable_hooks'] = TRUE; 

私は仕事にしようとしているコード:

<?php 
class Permissions { 
    var $CI; 

    public function __construct() { 
     $this->CI = &get_instance(); 
     $this->CI->load->library("session"); 
    } 

    public function can_view(){ 
     $this->CI->session->set_userdata('test','test'); 
    } 
} 

セッション変数の簡単なエコーが動作しませんが、私は、コントローラでセッション変数を設定すると、それが動作する...

+0

Doesntクラスパーミッションは何かを拡張する必要がありますか? – Brad

+0

私もそれを試みたが、行っていない。 – Suraj

答えて

1

Nいくつかのコントローラのコードを表示していますが、セッションライブラリを2回ロードすると、フックとコントローラのコードで2回目の読み込みが$ this-> CI->セッションを再初期化することがあります。 CIは2度読み込まず、各試行で初期設定を行います。 ログを有効にすることで二重負荷が発生しているかどうかを確認することができます。そのことを警告するメッセージが表示されます。

セッションライブラリを自動読み込みしてみてください。

+0

私は自動ローディングを試み、設定とコントローラの両方からローディングを取り出しましたが、変更はありません... – Suraj

+0

logginを有効にしてメッセージがあるかどうかを確認してください –

+0

ログを有効にしましたが、そこにフッククラスが初期化しますフッククラスへの呼び出しが行われます。 – Suraj

関連する問題