2012-01-05 16 views
0

私はアプリケーションを通して繰り返し使用する言語名の配列を持っています。それを行うための最良の方法は何ですか。私はこのライブラリを試しました、ここに例を示します。Codeigniterグローバル変数

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

    class Config extends CI_Controller 
    { 
     public $languages = ''; 
     public $languages_en = ''; 

     function __construct() { 
      parent::__construct(); 

      $this->languages = array('ar', 'cn', 'fr', 'de', 'it', 'jp', 'kr', 'pl', 'pt', 'ru', 'es', 'sk'); 

      $this->languages_en = array('ar', 'cn', 'fr', 'de', 'it', 'jp', 'kr', 'pl', 'pt', 'ru', 'es', 'sk', 'en'); 
     } 
    } 
?> 

そして、ライブラリをロードして変数を呼び出そうとしました。しかし、私が要求した行動が許可されていないというエラーが表示されます。

これを行う最も良い方法ですか?あるいは、CIでグローバル変数を作成するより良い方法はありますか?ところで、私のクラスの名前は問題ですか?

答えて

1

はい、Configクラスがあるので、Configは許可されたクラス名ではありません。

しかし、これらの配列を保持し、必要なときにそのファイルを読み込む設定ファイルを作成します。

ドキュメント:http://ellislab.com/codeigniter/user_guide/libraries/config.html

だからあなたの設定ファイル/application/config/languages.phpで、あなたがこれを置く:

$config['languages'] = array('ar', 'cn', 'fr', 'de', 'it', 'jp', 'kr', 'pl', 'pt', 'ru', 'es', 'sk'); 

$config['languages_en'] = array('ar', 'cn', 'fr', 'de', 'it', 'jp', 'kr', 'pl', 'pt', 'ru', 'es', 'sk', 'en'); 

を次に、あなたのコントローラでは、あなたがこれを行うことができます:

$this->config->load('languages'); 
$lang = $this->config->item('languages'); 
$lang_en = $this->config->item('languages_en'); 
+0

おかげで、Swatkins 。完璧。 – sehummel