2012-01-16 8 views
0

私はCodeIgniterのセッションクラス(自動ロード)を使用しています。どのように初期化値を設定できますか?私はデフォルトの言語を初期化したいので、これが必要です。codeigniterのセッションデータを初期化するには?

敬具...

+0

http://codeigniter.com/user_guide/libraries /sessions.html –

+0

私はユーザーガイドをよく知っています。しかし、私が自動ロードを使ってセッションの初期値を設定する場所はどこですか?私は各コントローラでそれらを初期化したくありません! – fillibuster

+0

ああ、私は前に質問を理解していませんでした。私は今あなたが欲しいものを手に入れます。あなたはそれを行うためにフックを使用することができます。答えを書き留めてください。 –

答えて

3

あなたがhooksを使用することができ、あなたのセッションにデータを初期化ロードします。

あなたは(pre_controllerフックに、セッションがまだロードされていない場合があります)post_controller_constructorフックを使用することができます。

アップconfig/hooks.phpオープンし、この追加:

$hook['post_controller_constructor'][] = array(
           'class' => 'SessionData', 
           'function' => 'initializeData', 
           'filename' => 'SessionData.php', 
           'filepath' => 'hooks', 
           'params' => array() 
           ); 

をそしてhooksフォルダ内のファイルを作成するには、以下を含むSessionData.phpと呼ばれる:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

class SessionData{ 
    var $CI; 

    function __construct(){ 
     $this->CI =& get_instance(); 
    } 

    function initializeData() { 
      // This function will run after the constructor for the controller is ran 
      // Set any initial values here 
      if(!$this->session->userdata('language')){ 
      $this->CI->session->set_userdata('language', 'English'); 
      } 
    } 
} 
?> 
+0

素晴らしい、あなたは歓迎:-)だ – fillibuster

+0

ありがとう –

関連する問題