2017-01-25 3 views
0

私が使用している最新のCodeIgniter 3.1.3CodeIgniterのlang->負荷(ERROR)

が、私はコードの行は、私が得ることを書いた場合次のエラー:

A PHP Error was encountered

Severity: Warning

Message: preg_match() expects parameter 2 to be string, array given

Filename: core/Lang.php

Line Number: 109

Backtrace:

File: .../application/views/home_view.php Line: 14 Function: load

File: .../controllers/Home.php Line: 14 Function: view

File: .../project/index.php Line: 315 Function: require_once

私は

$idiom = $this->session->get_userdata('language'); 
$this->lang->load('error_messages', $idiom); --> ERROR (home_view 
012を削除した場合 autoload.phpで

と場所

$autoload['language'] = array('error_messages'); 

すべてが正常です。

しかし、すべての言語ファイルをユーザーが必要としているかどうかわからないので、私はすべての言語ファイルを自動読み込みしたくありません。

誰でも手助けできますか?

おかげ

+0

を参照してください詳しくは

は、セッションを設定しました。.. –

+0

その配列はそれほど文字列に変換したり、ほかのセッション –

+0

から特定のデータを取得してください場合は、それが問題のセッションの問題 – flashore

答えて

0

あなたが$this->session->userdata('item_name')を使用してthis.Accessセッション変数のように達成することができます。

$idiom = $this->session->userdata('language'); 
$this->lang->load('error_messages', $idiom); 
$oops = $this->lang->line('message_key'); 
echo $oops; 

OR

$this->config->set_item('language', $idiom);//dynamically set language 
$this->lang->load('error_messages');//load lang file 

$oops = $this->lang->line('message_key'); 
echo $oops; 

それはあなたのお役に立てば幸いです。ここhttps://codeigniter.com/userguide3/libraries/sessions.html

+0

だったおかげで、あなたのセッションデータをチェックしますセッションと一緒に。セッションデータが正しく設定されていません – flashore

+0

'get_userdata()'ではなく 'userdata()'を使ってセッション変数を取得します。 –

+0

AnswerHopeで見ると、正しく変数が得られます。 –